From 35d7d0ef95c9e7eeb5aa0c985377d547e3f1dff3 Mon Sep 17 00:00:00 2001 From: Feng Zhou Date: Thu, 13 May 2021 21:25:01 +0800 Subject: [PATCH 1/8] e2e improvement --- src/confluent/HISTORY.rst | 8 + .../generated/_client_factory.py | 2 +- .../azext_confluent/generated/_help.py | 26 +- .../azext_confluent/generated/_params.py | 11 +- .../azext_confluent/generated/action.py | 62 - .../azext_confluent/generated/commands.py | 12 +- .../azext_confluent/generated/custom.py | 26 +- src/confluent/azext_confluent/manual/_help.py | 14 + .../azext_confluent/manual/_params.py | 26 + .../azext_confluent/manual/commands.py | 26 + .../azext_confluent/manual/custom.py | 117 ++ .../azext_confluent/manual/version.py | 11 + .../azext_confluent/tests/__init__.py | 8 +- .../tests/latest/example_steps.py | 32 +- .../recordings/test_confluent_Scenario.yaml | 1430 ++++++++++++++--- .../tests/latest/test_confluent_scenario.py | 39 +- .../test_confluent_scenario_coverage.md | 15 +- .../vendored_sdks/confluent/__init__.py | 3 + .../vendored_sdks/confluent/_configuration.py | 5 +- .../confluent/_confluent_management_client.py | 19 +- .../vendored_sdks/confluent/_version.py | 9 + .../confluent/aio/_configuration.py | 5 +- .../aio/_confluent_management_client.py | 19 +- .../confluent/aio/operations/__init__.py | 8 +- ... => _marketplace_agreements_operations.py} | 18 +- .../operations/_organization_operations.py | 52 +- ...=> _organization_operations_operations.py} | 8 +- .../confluent/models/__init__.py | 3 - .../vendored_sdks/confluent/models/_models.py | 124 +- .../confluent/models/_models_py3.py | 142 +- .../confluent/operations/__init__.py | 8 +- ... => _marketplace_agreements_operations.py} | 18 +- .../operations/_organization_operations.py | 52 +- ...=> _organization_operations_operations.py} | 8 +- src/confluent/gen.zip | Bin 7249 -> 0 bytes src/confluent/report.md | 12 +- 36 files changed, 1752 insertions(+), 626 deletions(-) create mode 100644 src/confluent/azext_confluent/manual/_params.py create mode 100644 src/confluent/azext_confluent/manual/commands.py create mode 100644 src/confluent/azext_confluent/manual/custom.py create mode 100644 src/confluent/azext_confluent/manual/version.py create mode 100644 src/confluent/azext_confluent/vendored_sdks/confluent/_version.py rename src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/{_marketplace_agreement_operations.py => _marketplace_agreements_operations.py} (92%) rename src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/{_organization_operation_operations.py => _organization_operations_operations.py} (94%) rename src/confluent/azext_confluent/vendored_sdks/confluent/operations/{_marketplace_agreement_operations.py => _marketplace_agreements_operations.py} (92%) rename src/confluent/azext_confluent/vendored_sdks/confluent/operations/{_organization_operation_operations.py => _organization_operations_operations.py} (94%) delete mode 100644 src/confluent/gen.zip diff --git a/src/confluent/HISTORY.rst b/src/confluent/HISTORY.rst index 1c139576ba0..070d3eec319 100644 --- a/src/confluent/HISTORY.rst +++ b/src/confluent/HISTORY.rst @@ -3,6 +3,14 @@ Release History =============== +0.2.0 ++++++ +* [BREAKING CHANGE] `az confluent organization create`: Remove `--user-detail`, the parameter is now auto-filled by the email address, first name and last name decoded from access token. +* [BREAKING CHANGE] `az confluent organization create`: Flatten `--offer-detail` to `--offer-id`, `--plan-id`, `--plan-name`, `--publisher-id` and `--term-unit`. +* Add new command `az confluent offer-detail show`. +* `az confluent organization create`: Add Owner or Contributor access check of the subscription before creating the organization. +* `az confluent organization delete`: Customize confirmation message based on plan type. + 0.1.0 ++++++ * Initial release. diff --git a/src/confluent/azext_confluent/generated/_client_factory.py b/src/confluent/azext_confluent/generated/_client_factory.py index 632d3dd2346..da8c5ef5da6 100644 --- a/src/confluent/azext_confluent/generated/_client_factory.py +++ b/src/confluent/azext_confluent/generated/_client_factory.py @@ -17,7 +17,7 @@ def cf_confluent_cl(cli_ctx, *_): def cf_marketplace_agreement(cli_ctx, *_): - return cf_confluent_cl(cli_ctx).marketplace_agreement + return cf_confluent_cl(cli_ctx).marketplace_agreements def cf_organization(cli_ctx, *_): diff --git a/src/confluent/azext_confluent/generated/_help.py b/src/confluent/azext_confluent/generated/_help.py index 3b429c5b121..758309e4f7b 100644 --- a/src/confluent/azext_confluent/generated/_help.py +++ b/src/confluent/azext_confluent/generated/_help.py @@ -56,33 +56,11 @@ helps['confluent organization create'] = """ type: command short-summary: "Create Organization resource." - parameters: - - name: --offer-detail - short-summary: "Confluent offer detail" - long-summary: | - Usage: --offer-detail publisher-id=XX id=XX plan-id=XX plan-name=XX term-unit=XX status=XX - - publisher-id: Publisher Id - id: Offer Id - plan-id: Offer Plan Id - plan-name: Offer Plan Name - term-unit: Offer Plan Term unit - status: SaaS Offer Status - - name: --user-detail - short-summary: "Subscriber detail" - long-summary: | - Usage: --user-detail first-name=XX last-name=XX email-address=XX - - first-name: First name - last-name: Last name - email-address: Email address examples: - name: Organization_Create text: |- - az confluent organization create --location "West US" --offer-detail id="string" plan-id="string" \ -plan-name="string" publisher-id="string" term-unit="string" --user-detail email-address="contoso@microsoft.com" \ -first-name="string" last-name="string" --tags Environment="Dev" --name "myOrganization" --resource-group \ -"myResourceGroup" + az confluent organization create --location "West US" --tags Environment="Dev" --name "myOrganization" \ +--resource-group "myResourceGroup" """ helps['confluent organization update'] = """ diff --git a/src/confluent/azext_confluent/generated/_params.py b/src/confluent/azext_confluent/generated/_params.py index 9e930101cbf..2aa7cb98c66 100644 --- a/src/confluent/azext_confluent/generated/_params.py +++ b/src/confluent/azext_confluent/generated/_params.py @@ -16,10 +16,6 @@ get_location_type ) from azure.cli.core.commands.validators import get_default_location_from_resource_group -from azext_confluent.action import ( - AddOfferDetail, - AddUserDetail -) def load_arguments(self, _): @@ -39,8 +35,11 @@ def load_arguments(self, _): c.argument('tags', tags_type) c.argument('location', arg_type=get_location_type(self.cli_ctx), required=False, validator=get_default_location_from_resource_group) - c.argument('offer_detail', action=AddOfferDetail, nargs='+', help='Confluent offer detail') - c.argument('user_detail', action=AddUserDetail, nargs='+', help='Subscriber detail') + c.argument('publisher_id', type=str, help='Publisher Id') + c.argument('offer_id', type=str, help='Offer Id') + c.argument('plan_id', type=str, help='Offer Plan Id') + c.argument('plan_name', type=str, help='Offer Plan Name') + c.argument('term_unit', type=str, help='Offer Plan Term unit') with self.argument_context('confluent organization update') as c: c.argument('resource_group_name', resource_group_name_type) diff --git a/src/confluent/azext_confluent/generated/action.py b/src/confluent/azext_confluent/generated/action.py index 008d284b6eb..b49bfaeeefe 100644 --- a/src/confluent/azext_confluent/generated/action.py +++ b/src/confluent/azext_confluent/generated/action.py @@ -8,65 +8,3 @@ # regenerated. # -------------------------------------------------------------------------- # pylint: disable=protected-access - -import argparse -from collections import defaultdict -from knack.util import CLIError - - -class AddOfferDetail(argparse.Action): - def __call__(self, parser, namespace, values, option_string=None): - action = self.get_action(values, option_string) - namespace.offer_detail = 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: - kl = k.lower() - v = properties[k] - if kl == 'publisher-id': - d['publisher_id'] = v[0] - elif kl == 'id': - d['id'] = v[0] - elif kl == 'plan-id': - d['plan_id'] = v[0] - elif kl == 'plan-name': - d['plan_name'] = v[0] - elif kl == 'term-unit': - d['term_unit'] = v[0] - elif kl == 'status': - d['status'] = v[0] - return d - - -class AddUserDetail(argparse.Action): - def __call__(self, parser, namespace, values, option_string=None): - action = self.get_action(values, option_string) - namespace.user_detail = 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: - kl = k.lower() - v = properties[k] - if kl == 'first-name': - d['first_name'] = v[0] - elif kl == 'last-name': - d['last_name'] = v[0] - elif kl == 'email-address': - d['email_address'] = v[0] - return d diff --git a/src/confluent/azext_confluent/generated/commands.py b/src/confluent/azext_confluent/generated/commands.py index 3b6969d10f8..6ed92e6406f 100644 --- a/src/confluent/azext_confluent/generated/commands.py +++ b/src/confluent/azext_confluent/generated/commands.py @@ -17,11 +17,11 @@ def load_command_table(self, _): from azext_confluent.generated._client_factory import cf_marketplace_agreement confluent_marketplace_agreement = CliCommandType( - operations_tmpl='azext_confluent.vendored_sdks.confluent.operations._marketplace_agreement_operations#Marketpla' - 'ceAgreementOperations.{}', + operations_tmpl='azext_confluent.vendored_sdks.confluent.operations._marketplace_agreements_operations#Marketpl' + 'aceAgreementsOperations.{}', client_factory=cf_marketplace_agreement) with self.command_group('confluent terms', confluent_marketplace_agreement, - client_factory=cf_marketplace_agreement, is_experimental=True) as g: + client_factory=cf_marketplace_agreement) as g: g.custom_command('list', 'confluent_terms_list') from azext_confluent.generated._client_factory import cf_organization @@ -29,11 +29,13 @@ def load_command_table(self, _): operations_tmpl='azext_confluent.vendored_sdks.confluent.operations._organization_operations#OrganizationOperat' 'ions.{}', client_factory=cf_organization) - with self.command_group('confluent organization', confluent_organization, client_factory=cf_organization, - is_experimental=True) as g: + with self.command_group('confluent organization', confluent_organization, client_factory=cf_organization) as g: g.custom_command('list', 'confluent_organization_list') g.custom_show_command('show', 'confluent_organization_show') g.custom_command('create', 'confluent_organization_create', supports_no_wait=True) g.custom_command('update', 'confluent_organization_update') g.custom_command('delete', 'confluent_organization_delete', supports_no_wait=True, confirmation=True) g.custom_wait_command('wait', 'confluent_organization_show') + + with self.command_group('confluent', is_experimental=True): + pass diff --git a/src/confluent/azext_confluent/generated/custom.py b/src/confluent/azext_confluent/generated/custom.py index f24c3785de4..102546183dd 100644 --- a/src/confluent/azext_confluent/generated/custom.py +++ b/src/confluent/azext_confluent/generated/custom.py @@ -35,27 +35,37 @@ def confluent_organization_create(client, organization_name, tags=None, location=None, - offer_detail=None, - user_detail=None, + publisher_id=None, + offer_id=None, + plan_id=None, + plan_name=None, + term_unit=None, no_wait=False): + body = {} + body['tags'] = tags + body['location'] = location + body['offer_detail'] = {} + body['offer_detail']['publisher_id'] = publisher_id + body['offer_detail']['id'] = offer_id + body['offer_detail']['plan_id'] = plan_id + body['offer_detail']['plan_name'] = plan_name + body['offer_detail']['term_unit'] = term_unit return sdk_no_wait(no_wait, client.begin_create, resource_group_name=resource_group_name, organization_name=organization_name, - tags=tags, - location=location, - provisioning_state=None, - offer_detail=offer_detail, - user_detail=user_detail) + body=body) def confluent_organization_update(client, resource_group_name, organization_name, tags=None): + body = {} + body['tags'] = tags return client.update(resource_group_name=resource_group_name, organization_name=organization_name, - tags=tags) + body=body) def confluent_organization_delete(client, diff --git a/src/confluent/azext_confluent/manual/_help.py b/src/confluent/azext_confluent/manual/_help.py index 201b779b55c..3b6b451900e 100644 --- a/src/confluent/azext_confluent/manual/_help.py +++ b/src/confluent/azext_confluent/manual/_help.py @@ -39,3 +39,17 @@ text: |- az confluent organization delete --ids "/subscriptions/{SubID}/resourceGroups/{ResourceGroup}/providers/Microsoft.Confluent/organizations/{myOrganization}" """ + +helps['confluent offer-detail'] = """ + type: group + short-summary: Manage confluent offer details +""" + +helps['confluent offer-detail show'] = """ + type: command + short-summary: "Get the offer details for available offers." + examples: + - name: Show default offer details + text: |- + az confluent offer-detail show +""" diff --git a/src/confluent/azext_confluent/manual/_params.py b/src/confluent/azext_confluent/manual/_params.py new file mode 100644 index 00000000000..38ca5c841d0 --- /dev/null +++ b/src/confluent/azext_confluent/manual/_params.py @@ -0,0 +1,26 @@ +# -------------------------------------------------------------------------- +# Copyright (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 load_arguments(self, _): + with self.argument_context('confluent organization create') as c: + c.argument('publisher_id', type=str, help='Publisher Id', default='confluentinc', arg_group='Offer Detail') + c.argument('offer_id', type=str, help='Offer Id', default='confluent-cloud-azure-prod', + arg_group='Offer Detail') + c.argument('plan_id', type=str, help='Offer Plan Id', arg_group='Offer Detail') + c.argument('plan_name', type=str, help='Offer Plan Name', arg_group='Offer Detail') + c.argument('term_unit', type=str, help='Offer Plan Term unit', arg_group='Offer Detail') + + with self.argument_context('confluent organization delete') as c: + c.argument('yes', options_list=['--yes', '-y'], action='store_true', help='Do not prompt for confirmation.') + + with self.argument_context('confluent offer-detail show') as c: + c.argument('publisher_id', type=str, help='Publisher Id', default='confluentinc') + c.argument('offer_id', type=str, help='Offer Id', default='confluent-cloud-azure-prod', + arg_group='Offer Detail') diff --git a/src/confluent/azext_confluent/manual/commands.py b/src/confluent/azext_confluent/manual/commands.py new file mode 100644 index 00000000000..b747c5913ac --- /dev/null +++ b/src/confluent/azext_confluent/manual/commands.py @@ -0,0 +1,26 @@ +# -------------------------------------------------------------------------- +# Copyright (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.commands import CliCommandType + + +def load_command_table(self, _): + + from azext_confluent.generated._client_factory import cf_organization + + confluent_organization = CliCommandType( + operations_tmpl='azext_confluent.vendored_sdks.confluent.operations._organization_operations#OrganizationOperat' + 'ions.{}', + client_factory=cf_organization) + with self.command_group('confluent organization', confluent_organization, client_factory=cf_organization) as g: + g.custom_command('delete', 'confluent_organization_delete', supports_no_wait=True) + + with self.command_group('confluent offer-detail') as g: + g.custom_show_command('show', 'confluent_offer_detail_show') diff --git a/src/confluent/azext_confluent/manual/custom.py b/src/confluent/azext_confluent/manual/custom.py new file mode 100644 index 00000000000..471e1862c42 --- /dev/null +++ b/src/confluent/azext_confluent/manual/custom.py @@ -0,0 +1,117 @@ +# -------------------------------------------------------------------------- +# Copyright (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.util import sdk_no_wait, user_confirmation + + +def confluent_organization_create(cmd, + client, + resource_group_name, + organization_name, + tags=None, + location=None, + publisher_id=None, + offer_id=None, + plan_id=None, + plan_name=None, + term_unit=None, + no_wait=False): + import jwt + from azure.cli.core._profile import Profile + from azure.cli.command_modules.role.custom import list_role_assignments + + token_info = Profile(cli_ctx=cmd.cli_ctx).get_raw_token()[0][2] + decode = jwt.decode(token_info['accessToken'], verify=False, algorithms=['RS256']) + body = {} + body['user_detail'] = {} + try: + body['user_detail']['first_name'] = decode['given_name'] + body['user_detail']['last_name'] = decode['family_name'] + body['user_detail']['email_address'] = decode['email'] if 'email' in decode else decode['unique_name'] + except KeyError as ex: + raise Exception(f'Cannot create the organization as CLI cannot get the right value for {str(ex)} from access ' + 'token.') + + # Check owner or contributor role of subscription + user_object_id = decode['oid'] + role_assignments = list_role_assignments(cmd, assignee=user_object_id, role='Owner') + \ + list_role_assignments(cmd, assignee=user_object_id, role='Contributor') + if not role_assignments: + raise Exception('You must have Owner or Contributor role of the subscription to create an organization.') + + body['tags'] = tags + body['location'] = location + body['offer_detail'] = {} + body['offer_detail']['publisher_id'] = publisher_id + body['offer_detail']['id'] = offer_id + body['offer_detail']['plan_id'] = plan_id + body['offer_detail']['plan_name'] = plan_name + body['offer_detail']['term_unit'] = term_unit + + return sdk_no_wait(no_wait, + client.begin_create, + resource_group_name=resource_group_name, + organization_name=organization_name, + body=body) + + +def confluent_organization_delete(client, + resource_group_name, + organization_name, + no_wait=False, + yes=None): + if not yes: + org = client.get(resource_group_name=resource_group_name, + organization_name=organization_name) + default_msg = '- This action cannot be undone.\n' \ + f'- This will permanently delete \'{organization_name}\' and its Azure subscription.\n' \ + '- Stop billing for the selected Confluent organization through Azure Marketplace.\n' \ + 'Do you want to proceed' + + if org.offer_detail.plan_id.lower() == 'commit': + user_confirmation('- The action cannot be undone and will permanently delete this resource.\n' + '- Resource deletion is a permanent action. All the resources, contract purchased ' + 'and its Azure integration will be permanently deleted and will unsubscribe you ' + 'from this service.\n' + '- If you delete the resource, you will not be able to restore the commit contract ' + 'and create Confluent cloud resource once again with this contract.\n' + '- If you are deleting the Confluent cloud resource after 14 days into the contract ' + 'term, you will not get a refund for this service.\n' + '- The resource is also associated with other non-dependent resources like clusters' + ', environments, topics etc. Such associated resources on Confluent cloud will be ' + 'scheduled for deletion. For more information on the Confluent Cloud cluster ' + 'deletion process and timeline, please contact Confluent Support: ' + 'https://support.confluent.io/\n' + 'Do you want to proceed') + else: + user_confirmation(default_msg) + + return sdk_no_wait(no_wait, + client.begin_delete, + resource_group_name=resource_group_name, + organization_name=organization_name) + + +def confluent_offer_detail_show(cmd, publisher_id=None, offer_id=None): + from azure.cli.core.util import send_raw_request + from azure.cli.core.azclierror import ArgumentUsageError + url = f"https://management.azure.com/providers/Microsoft.Marketplace/offers/{publisher_id}.{offer_id}?" \ + "excludePublic=true&api-version=2018-08-01-beta" + response = send_raw_request(cmd.cli_ctx, 'get', url) + try: + plans = response.json()['plans'] + plans = [{'planId': plan['planId'], + 'planName': plan['displayName'], + 'termUnits':[item for a in plan['availabilities'] for item in a['terms']] + } for plan in plans] + except KeyError: + raise ArgumentUsageError('Not able to get offer details for the provided publisher id and offer id.') + + return plans diff --git a/src/confluent/azext_confluent/manual/version.py b/src/confluent/azext_confluent/manual/version.py new file mode 100644 index 00000000000..d2efe888b81 --- /dev/null +++ b/src/confluent/azext_confluent/manual/version.py @@ -0,0 +1,11 @@ +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +VERSION = "0.2.0" \ No newline at end of file diff --git a/src/confluent/azext_confluent/tests/__init__.py b/src/confluent/azext_confluent/tests/__init__.py index 50e0627daff..70488e93851 100644 --- a/src/confluent/azext_confluent/tests/__init__.py +++ b/src/confluent/azext_confluent/tests/__init__.py @@ -31,8 +31,8 @@ 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] + decorated_path = inspect.getfile(origin_func).lower() + module_path = __path__[0].lower() if not decorated_path.startswith(module_path): raise Exception("Decorator can only be used in submodules!") manual_path = os.path.join( @@ -46,7 +46,6 @@ def import_manual_function(origin_func): 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): @@ -66,6 +65,9 @@ def wrapper(*args, **kwargs): ret = func_to_call(*args, **kwargs) except (AssertionError, AzureError, CliTestError, CliExecutionError, SystemExit, JMESPathCheckAssertionError) as e: + use_exception_cache = os.getenv("TEST_EXCEPTION_CACHE") + if use_exception_cache is None or use_exception_cache.lower() != "true": + raise 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] diff --git a/src/confluent/azext_confluent/tests/latest/example_steps.py b/src/confluent/azext_confluent/tests/latest/example_steps.py index 2a799e4d5c5..ef777fe272b 100644 --- a/src/confluent/azext_confluent/tests/latest/example_steps.py +++ b/src/confluent/azext_confluent/tests/latest/example_steps.py @@ -7,14 +7,14 @@ # Changes may cause incorrect behavior and will be lost if the code is # regenerated. # -------------------------------------------------------------------------- - +# pylint: disable=unused-argument from .. import try_manual # EXAMPLE: /MarketplaceAgreements/get/MarketplaceAgreements_List @try_manual -def step_terms_list(test, rg, checks=None): # pylint: disable=unused-argument +def step_terms_list(test, rg, checks=None): if checks is None: checks = [] test.cmd('az confluent terms list', @@ -23,14 +23,16 @@ def step_terms_list(test, rg, checks=None): # pylint: disable=unused-argument # EXAMPLE: /Organization/put/Organization_Create @try_manual -def step_organization_create(test, rg, checks=None): # pylint: disable=unused-argument +def step_organization_create(test, rg, checks=None): if checks is None: checks = [] test.cmd('az confluent organization create ' '--location "eastus2euap" ' - '--offer-detail id="confluent-cloud-azure-stag" plan-id="confluent-cloud-azure-payg-stag" ' - 'plan-name="Confluent Cloud - Pay as you Go" publisher-id="confluentinc" term-unit="P1M" ' - '--user-detail email-address="contoso@microsoft.com" first-name="contoso" last-name="zhou" ' + '--offer-id "confluent-cloud-azure-stag" ' + '--plan-id "confluent-cloud-azure-payg-stag" ' + '--plan-name "Confluent Cloud - Pay as you Go" ' + '--publisher-id "confluentinc" ' + '--term-unit "P1M" ' '--tags environment="Dev" ' '--name "{myOrganization}" ' '--resource-group "{rg}"', @@ -43,7 +45,7 @@ def step_organization_create(test, rg, checks=None): # pylint: disable=unused-a # EXAMPLE: /Organization/get/Organization_Get @try_manual -def step_organization_show(test, rg, checks=None): # pylint: disable=unused-argument +def step_organization_show(test, rg, checks=None): if checks is None: checks = [] test.cmd('az confluent organization show ' @@ -54,7 +56,7 @@ def step_organization_show(test, rg, checks=None): # pylint: disable=unused-arg # EXAMPLE: /Organization/get/Organization_ListByResourceGroup @try_manual -def step_organization_list(test, rg, checks=None): # pylint: disable=unused-argument +def step_organization_list(test, rg, checks=None): if checks is None: checks = [] test.cmd('az confluent organization list ' @@ -62,9 +64,19 @@ def step_organization_list(test, rg, checks=None): # pylint: disable=unused-arg checks=checks) +# EXAMPLE: /Organization/get/Organization_ListBySubscription +@try_manual +def step_organization_list2(test, rg, checks=None): + if checks is None: + checks = [] + test.cmd('az confluent organization list ' + '-g ""', + checks=checks) + + # EXAMPLE: /Organization/patch/Confluent_Update @try_manual -def step_organization_update(test, rg, checks=None): # pylint: disable=unused-argument +def step_organization_update(test, rg, checks=None): if checks is None: checks = [] test.cmd('az confluent organization update ' @@ -76,7 +88,7 @@ def step_organization_update(test, rg, checks=None): # pylint: disable=unused-a # EXAMPLE: /Organization/delete/Confluent_Delete @try_manual -def step_organization_delete(test, rg, checks=None): # pylint: disable=unused-argument +def step_organization_delete(test, rg, checks=None): if checks is None: checks = [] test.cmd('az confluent organization delete -y ' diff --git a/src/confluent/azext_confluent/tests/latest/recordings/test_confluent_Scenario.yaml b/src/confluent/azext_confluent/tests/latest/recordings/test_confluent_Scenario.yaml index d6fe1961e4c..f593f5dd87a 100644 --- a/src/confluent/azext_confluent/tests/latest/recordings/test_confluent_Scenario.yaml +++ b/src/confluent/azext_confluent/tests/latest/recordings/test_confluent_Scenario.yaml @@ -11,28 +11,25 @@ interactions: Connection: - keep-alive User-Agent: - - AZURECLI/2.16.0 azsdk-python-confluentmanagementclient/unknown Python/3.6.9 - (Linux-5.4.0-1031-azure-x86_64-with-Ubuntu-18.04-bionic) + - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Confluent/agreements?api-version=2020-03-01-preview response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Confluent/agreements/marketplace","name":"marketplace","type":"Microsoft.MarketplaceOrdering/offertypes","properties":{"publisher":"Microsoft","product":"marketplace","plan":"marketplace","licenseTextLink":"https://azure.microsoft.com/en-us/support/legal/marketplace-terms/","privacyPolicyLink":"http://www.microsoft.com/privacy","retrieveDatetime":null,"signature":"ASDFGHJKLBDR","accepted":false}},{"id":"/subscriptions/{subscriptionId}/providers/Microsoft.Confluent/agreements/default","name":"confluent","type":"Microsoft.MarketplaceOrdering/offertypes","properties":{"publisher":"Confluent","product":"marketplace","plan":"confluent","licenseTextLink":"https://www.confluent.io/marketplace-terms-of-service/","privacyPolicyLink":"https://assets.confluent.io/m/1353b6c3146e5feb/original/20200911-Confluent_Privacy_Statement.pdf","retrieveDatetime":null,"signature":"ASDFGHJKLBPG","accepted":false}}]}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Confluent/agreements/marketplace","name":"marketplace","type":"Microsoft.Confluent/agreements","properties":{"publisher":"Microsoft","product":"Marketplace","plan":"Marketplace","licenseTextLink":"https://azure.microsoft.com/en-us/support/legal/marketplace-terms/","privacyPolicyLink":"http://www.microsoft.com/privacy","retrieveDatetime":null,"signature":"","accepted":false}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Confluent/agreements/default","name":"confluent","type":"Microsoft.Confluent/offertypes","properties":{"publisher":"Confluent","product":"Marketplace","plan":"Confluent","licenseTextLink":"https://www.confluent.io/marketplace-terms-of-service/","privacyPolicyLink":"https://assets.confluent.io/m/1353b6c3146e5feb/original/20200911-Confluent_Privacy_Statement.pdf","retrieveDatetime":null,"signature":"","accepted":false}}]}' headers: cache-control: - no-cache content-length: - - '993' + - '969' content-type: - application/json; charset=utf-8 date: - - Mon, 21 Dec 2020 10:08:05 GMT + - Thu, 13 May 2021 13:06:34 GMT expires: - '-1' pragma: - no-cache - server: - - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -41,15 +38,131 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff + x-ms-providerhub-traffic: + - 'True' status: code: 200 message: OK - request: - body: '{"tags": {"environment": "Dev"}, "location": "eastus2euap", "properties": - {"offerDetail": {"publisherId": "confluentinc", "id": "confluent-cloud-azure-stag", - "planId": "confluent-cloud-azure-payg-stag", "planName": "Confluent Cloud - - Pay as you Go", "termUnit": "P1M"}, "userDetail": {"firstName": "contoso", "lastName": - "zhou", "emailAddress": "contoso@microsoft.com"}}}' + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - confluent offer-detail show + Connection: + - keep-alive + ParameterSetName: + - --publisher-id --offer-id + User-Agent: + - python/3.8.8 (Windows-10-10.0.19041-SP0) AZURECLI/2.23.0 (MSI) + method: GET + uri: https://management.azure.com/providers/Microsoft.Marketplace/offers/confluentinc.confluent-cloud-azure-stag?excludePublic=true&api-version=2018-08-01-beta + response: + body: + string: "{\"language\":\"en\",\"displayName\":\"Apache Kafka\xAE on Confluent + Cloud\u2122 [STAG-LIFTR]\",\"hasStandardContractAmendments\":false,\"publisherMpnId\":\"6010942\",\"sellerId\":\"27647670\",\"publisherId\":\"confluentinc\",\"publisherDisplayName\":\"Confluent\",\"offerId\":\"confluent-cloud-azure-stag\",\"legacyId\":\"confluentinc.confluent-cloud-azure-stag\",\"determinedStorefronts\":[\"Ibiza\"],\"standardContractAmendmentsRevisionId\":\"00000000-0000-0000-0000-000000000000\",\"longSummary\":\"Fully + managed event streaming platform powered by Apache Kafka\",\"description\":\"

Confluent Cloud is the industry's only fully-managed, cloud-native + event streaming service powered by Apache Kafka\xAE that is:


Serverless. Start streaming in minutes with on-demand + provisioning and elastic scaling for a serverless Kafka experience.

Reliable. Stream with confidence with enterprise-grade + reliability, 99.95% uptime SLAs, multi AZ replication for resilience, on-demand + Kafka bug fixes and upgrades without downtime.

Complete. + Speed up app development with Confluent\u2019s rich pre-built ecosystem of + fully-managed components such as Schema Registry, Connect & ksqlDB.

Flexible. Build a hybrid Kafka service leveraging Confluent + Platform (sold separately) on your on-prem environment with a persistent bridge + to Confluent Cloud with Confluent Replicator.

Service Offerings

Fully-managed + Apache Kafka

Other fully-managed components to speed up app development


Annual Commitments - update

Pay for only + what you use - update\",\"offerType\":\"SaaS\",\"isPrivate\":false,\"isPreview\":false,\"isStopSell\":false,\"fulfillBeforeChargeEligible\":true,\"isvContactDetails\":{\"us\":\"azureteam@confluent.io\"},\"bigId\":\"DZH318Z0D8ZC\",\"legalTermsUri\":\"https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RWDsJD\",\"cspLegalTermsUri\":\"https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RWDsJD\",\"legalTermsType\":\"None\",\"privacyPolicyUri\":\"https://www.confluent.io/confluent-privacy-statement\",\"supportUri\":\"https://www.confluent.io/confluent-cloud/support\",\"version\":\"78ce1bec-d80b-42f5-abde-3d372576b579\",\"categoryIds\":[\"analytics\",\"big-data\",\"real-time-streaming-analytics\",\"azureCertified\",\"fromPublishingPortal\"],\"industryIds\":[],\"links\":[{\"id\":\"Docs\",\"displayName\":\"Docs\",\"uri\":\"https://docs.confluent.io/current/cloud/?utm_medium=partners_marketplace&utm_source=microsoft&utm_campaign=con.confluent_cloud_liftr\"},{\"id\":\"Quick + Start\",\"displayName\":\"Quick Start\",\"uri\":\"https://docs.confluent.io/current/quickstart/cloud-quickstart/index.html?utm_medium=partners_marketplace&utm_source=microsoft&utm_campaign=con.confluent_cloud_liftr\"},{\"id\":\"Community + Forums / Slack\",\"displayName\":\"Community Forums / Slack\",\"uri\":\"https://launchpass.com/confluentcommunity\"},{\"id\":\"FAQs\",\"displayName\":\"FAQs\",\"uri\":\"https://www.confluent.io/confluent-cloud-faqs/?utm_medium=partners_marketplace&utm_source=microsoft&utm_campaign=con.confluent_cloud_liftr\"},{\"id\":\"Whitepaper: + Why Use Kafka to Migrate to the Cloud\",\"displayName\":\"Whitepaper: Why + Use Kafka to Migrate to the Cloud\",\"uri\":\"https://www.confluent.io/resources/why-use-apache-kafka-to-migrate-to-cloud?utm_medium=partners_marketplace&utm_source=microsoft&utm_campaign=con.confluent_cloud_liftr\"},{\"id\":\"Whitepaper: + How to Create a Bridge to Cloud with Kafka and Confluent Cloud\",\"displayName\":\"Whitepaper: + How to Create a Bridge to Cloud with Kafka and Confluent Cloud\",\"uri\":\"https://www.confluent.io/resources/bridge-to-cloud?utm_medium=partners_marketplace&utm_source=microsoft&utm_campaign=con.confluent_cloud_liftr\"},{\"id\":\"Whitepaper: + Confluent Cloud Security Overview\",\"displayName\":\"Whitepaper: Confluent + Cloud Security Overview\",\"uri\":\"https://www.confluent.io/resources/confluent-cloud-security-overview?utm_medium=partners_marketplace&utm_source=microsoft&utm_campaign=con.confluent_cloud_pliftr\"},{\"id\":\"Whitepaper: + End to End Encryption with Confluent Cloud\",\"displayName\":\"Whitepaper: + End to End Encryption with Confluent Cloud\",\"uri\":\"https://www.confluent.io/resources/end-to-end-encryption-with-confluent-cloud?utm_medium=partners_marketplace&utm_source=microsoft&utm_campaign=con.confluent_cloud_liftr\"},{\"id\":\"Whitepaper: + Best Practices for Developing Kafka Applications on Confluent Cloud\",\"displayName\":\"Whitepaper: + Best Practices for Developing Kafka Applications on Confluent Cloud\",\"uri\":\"https://assets.confluent.io/m/14397e757459a58d/original/20200205-WP-Best_Practices_for_Developing_Apache_Kafka_Applications_on_Confluent_Cloud.pdf?utm_medium=partners_marketplace&utm_source=microsoft&utm_campaign=con.confluent_cloud_liftr\"},{\"id\":\"Customer + Case Study: BAADER Blog Post\",\"displayName\":\"Customer Case Study: BAADER + Blog Post\",\"uri\":\"https://www.confluent.io/blog/reshaping-entire-industries-with-iot-and-confluent-cloud/?utm_medium=partners_marketplace&utm_source=microsoft&utm_campaign=con.confluent_cloud_liftr\"},{\"id\":\"Customer + Case Study: Bosch\",\"displayName\":\"Customer Case Study: Bosch\",\"uri\":\"https://www.confluent.io/customers/bosch?utm_medium=partners_marketplace&utm_source=microsoft&utm_campaign=con.confluent_cloud_liftr\"}],\"iconFileUris\":{\"small\":\"https://store-images.s-microsoft.com/image/apps.9151.ef18d5d9-cb9c-4a60-89f2-05d7ff69e05f.38414fed-8958-4bba-bf02-d5d0e43568fc.d799c8e6-bc69-4d6b-8fb9-761dea08888d\",\"medium\":\"https://store-images.s-microsoft.com/image/apps.16931.ef18d5d9-cb9c-4a60-89f2-05d7ff69e05f.38414fed-8958-4bba-bf02-d5d0e43568fc.a39a0711-e5f3-4da0-bd24-c9726b6d9b77\",\"wide\":\"https://store-images.s-microsoft.com/image/apps.32637.ef18d5d9-cb9c-4a60-89f2-05d7ff69e05f.38414fed-8958-4bba-bf02-d5d0e43568fc.89791b8b-40f5-44dd-9589-622611195143\",\"large\":\"https://store-images.s-microsoft.com/image/apps.8342.ef18d5d9-cb9c-4a60-89f2-05d7ff69e05f.38414fed-8958-4bba-bf02-d5d0e43568fc.31aa7943-0cf5-48bd-a932-f4e5bfab0736\"},\"metadata\":{\"leadGeneration\":{\"productId\":null},\"testDrive\":null},\"images\":[{\"context\":\"ibiza\",\"items\":[{\"id\":\"small\",\"uri\":\"https://store-images.s-microsoft.com/image/apps.9151.ef18d5d9-cb9c-4a60-89f2-05d7ff69e05f.38414fed-8958-4bba-bf02-d5d0e43568fc.d799c8e6-bc69-4d6b-8fb9-761dea08888d\",\"type\":\"icon\"},{\"id\":\"medium\",\"uri\":\"https://store-images.s-microsoft.com/image/apps.16931.ef18d5d9-cb9c-4a60-89f2-05d7ff69e05f.38414fed-8958-4bba-bf02-d5d0e43568fc.a39a0711-e5f3-4da0-bd24-c9726b6d9b77\",\"type\":\"icon\"},{\"id\":\"wide\",\"uri\":\"https://store-images.s-microsoft.com/image/apps.32637.ef18d5d9-cb9c-4a60-89f2-05d7ff69e05f.38414fed-8958-4bba-bf02-d5d0e43568fc.89791b8b-40f5-44dd-9589-622611195143\",\"type\":\"icon\"},{\"id\":\"large\",\"uri\":\"https://store-images.s-microsoft.com/image/apps.8342.ef18d5d9-cb9c-4a60-89f2-05d7ff69e05f.38414fed-8958-4bba-bf02-d5d0e43568fc.31aa7943-0cf5-48bd-a932-f4e5bfab0736\",\"type\":\"icon\"},{\"id\":\"screenshot0\",\"uri\":\"https://store-images.s-microsoft.com/image/apps.53299.ef18d5d9-cb9c-4a60-89f2-05d7ff69e05f.38414fed-8958-4bba-bf02-d5d0e43568fc.d40b0f87-579b-45f9-a957-933458800e86\",\"type\":\"screenshot\"}]}],\"videos\":[],\"plans\":[{\"id\":\"0001\",\"displayName\":\"Confluent + Cloud - Pay as you Go\",\"description\":\"

Consumption Based Pricing

Elastically + scale up to 100MBps
Retention of up to 5TB
24x7 expert Kafka support + - optional add-on
VNet peering not supported

Further + explanations of monthly pricing at: http://docs.confluent.io/current/cloud/marketplace/units.html
\",\"restrictedAudience\":{},\"skuId\":\"0001\",\"planId\":\"confluent-cloud-azure-payg-stag\",\"legacyPlanId\":\"confluentinc.confluent-cloud-azure-stagconfluent-cloud-azure-payg-stag\",\"keywords\":[],\"type\":\"SaaS\",\"leadGeneration\":{\"productId\":\"confluentinc.confluent-cloud-azure-stag\"},\"testDrive\":null,\"availabilities\":[{\"actions\":[\"Browse\",\"Curate\",\"Details\",\"Purchase\",\"Renew\"],\"market\":\"US\",\"isPIRequired\":true,\"appId\":\"DZH318Z0D8ZC\",\"planID\":\"0001\",\"meterId\":null,\"meter\":null,\"pricingAudience\":\"DirectCommercial\",\"terms\":[{\"termDescriptionParameters\":null,\"termId\":\"hjdtn7tfnxcy\",\"termUnits\":\"P1M\",\"prorationPolicy\":{\"minimumProratedUnits\":\"P1D\"},\"termDescription\":\"1 + Month Subscription\",\"price\":{\"currencyCode\":\"USD\",\"isPIRequired\":true,\"listPrice\":0.0,\"msrp\":0.0},\"renewTermId\":\"hjdtn7tfnxcy\",\"renewTermUnits\":\"P1M\"}],\"piFilter\":{\"exclusionProperties\":[\"commercial_monetary_commit\",\"LegacySubscriptions\",\"monetary_commitment\",\"NonMobileOperatorContent\",\"StoredValue\",\"Subscriptions\"],\"inclusionProperties\":[]},\"isStopSell\":false,\"hasFreeTrials\":false,\"assetBehaviors\":[\"TermBased\",\"FutureBilling\"],\"consumptionUnitType\":\"DAY\",\"displayRank\":0,\"partitionKey\":\"DZH318Z0D8ZC-US\",\"remediationRequired\":false,\"remediations\":null,\"id\":\"DZH318Z0BL35\",\"_ts\":0,\"_etag\":null},{\"actions\":[\"Browse\",\"Consume\",\"Curate\",\"Details\"],\"market\":\"US\",\"isPIRequired\":true,\"appId\":\"DZH318Z0D8ZC\",\"planID\":\"0001\",\"meterId\":\"confluent_consumption_unit\",\"meter\":{\"meterId\":\"confluent_consumption_unit\",\"partNumber\":\"RJXCLNKF4EN2WOVECCT376MFZEOB7QZJQBNDYDV6A22LAUCLA5EIW3KTDSLR2C6JPZJ6PF2UOI3CWVB66APO4FXCHIAWMHALDNXEWIY\",\"consumptionResourceId\":\"confluent_consumption_unit\",\"price\":{\"currencyCode\":\"USD\",\"isPIRequired\":true,\"listPrice\":0.01,\"msrp\":0.01},\"type\":\"confluent_consumption_unit\",\"includedQuantityProperties\":[{\"termId\":\"hjdtn7tfnxcy\",\"quantity\":\"0\"}]},\"pricingAudience\":\"DirectCommercial\",\"terms\":[{\"termDescriptionParameters\":null,\"termId\":\"rro4hcfnkdoy\",\"termUnits\":\"1\",\"prorationPolicy\":{\"minimumProratedUnits\":null},\"termDescription\":\"Confluent + Consumption Unit\",\"price\":{\"currencyCode\":\"USD\",\"isPIRequired\":true,\"listPrice\":0.01,\"msrp\":0.01},\"renewTermId\":null,\"renewTermUnits\":null}],\"piFilter\":{\"exclusionProperties\":[\"commercial_monetary_commit\",\"LegacySubscriptions\",\"monetary_commitment\",\"NonMobileOperatorContent\",\"StoredValue\",\"Subscriptions\"],\"inclusionProperties\":[]},\"isStopSell\":false,\"hasFreeTrials\":false,\"consumptionUnitType\":\"usageunit\",\"displayRank\":1,\"partitionKey\":\"DZH318Z0D8ZC-US\",\"remediationRequired\":false,\"remediations\":null,\"id\":\"DZH318Z0BL2N\",\"_ts\":0,\"_etag\":null},{\"actions\":[\"Browse\",\"Consume\",\"Curate\",\"Details\"],\"market\":\"US\",\"isPIRequired\":true,\"appId\":\"DZH318Z0D8ZC\",\"planID\":\"0001\",\"meterId\":\"confluent_free_unit\",\"meter\":{\"meterId\":\"confluent_free_unit\",\"partNumber\":\"RJXCLNKF4EN2WOVECCT376MFZEOB7QZJQBNDYDV6A22LAUCLA5EIW3KTDSLR2C6JPZJ6PF2UOI3CWVB66APO4FXCHIAWMHALDNXEWIY\",\"consumptionResourceId\":\"confluent_free_unit\",\"price\":{\"currencyCode\":\"USD\",\"isPIRequired\":true,\"listPrice\":0.0,\"msrp\":0.0},\"type\":\"confluent_free_unit\",\"includedQuantityProperties\":[{\"termId\":\"hjdtn7tfnxcy\",\"quantity\":\"0\"}]},\"pricingAudience\":\"DirectCommercial\",\"terms\":[{\"termDescriptionParameters\":null,\"termId\":\"438w39nkhnjy\",\"termUnits\":\"1\",\"prorationPolicy\":{\"minimumProratedUnits\":null},\"termDescription\":\"Confluent + Free Unit\",\"price\":{\"currencyCode\":\"USD\",\"isPIRequired\":true,\"listPrice\":0.0,\"msrp\":0.0},\"renewTermId\":null,\"renewTermUnits\":null}],\"piFilter\":{\"exclusionProperties\":[\"commercial_monetary_commit\",\"LegacySubscriptions\",\"monetary_commitment\",\"NonMobileOperatorContent\",\"StoredValue\",\"Subscriptions\"],\"inclusionProperties\":[]},\"isStopSell\":false,\"hasFreeTrials\":false,\"consumptionUnitType\":\"freeunit\",\"displayRank\":2,\"partitionKey\":\"DZH318Z0D8ZC-US\",\"remediationRequired\":false,\"remediations\":null,\"id\":\"DZH318Z0BL30\",\"_ts\":0,\"_etag\":null},{\"actions\":[\"Browse\",\"Consume\",\"Curate\",\"Details\"],\"market\":\"US\",\"isPIRequired\":true,\"appId\":\"DZH318Z0D8ZC\",\"planID\":\"0001\",\"meterId\":\"confluent_support_unit\",\"meter\":{\"meterId\":\"confluent_support_unit\",\"partNumber\":\"RJXCLNKF4EN2WOVECCT376MFZEOB7QZJQBNDYDV6A22LAUCLA5EIW3KTDSLR2C6JPZJ6PF2UOI3CWVB66APO4FXCHIAWMHALDNXEWIY\",\"consumptionResourceId\":\"confluent_support_unit\",\"price\":{\"currencyCode\":\"USD\",\"isPIRequired\":true,\"listPrice\":0.01,\"msrp\":0.01},\"type\":\"confluent_support_unit\",\"includedQuantityProperties\":[{\"termId\":\"hjdtn7tfnxcy\",\"quantity\":\"0\"}]},\"pricingAudience\":\"DirectCommercial\",\"terms\":[{\"termDescriptionParameters\":null,\"termId\":\"b19e6d5jyexy\",\"termUnits\":\"1\",\"prorationPolicy\":{\"minimumProratedUnits\":null},\"termDescription\":\"Confluent + Support Unit\",\"price\":{\"currencyCode\":\"USD\",\"isPIRequired\":true,\"listPrice\":0.01,\"msrp\":0.01},\"renewTermId\":null,\"renewTermUnits\":null}],\"piFilter\":{\"exclusionProperties\":[\"commercial_monetary_commit\",\"LegacySubscriptions\",\"monetary_commitment\",\"NonMobileOperatorContent\",\"StoredValue\",\"Subscriptions\"],\"inclusionProperties\":[]},\"isStopSell\":false,\"hasFreeTrials\":false,\"consumptionUnitType\":\"supportunit\",\"displayRank\":3,\"partitionKey\":\"DZH318Z0D8ZC-US\",\"remediationRequired\":false,\"remediations\":null,\"id\":\"DZH318Z0BL33\",\"_ts\":0,\"_etag\":null}],\"categoryIds\":[],\"conversionPaths\":[\"0004\"],\"metadata\":{},\"uiDefinitionUri\":\"https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RWDsJy\",\"artifacts\":[{\"name\":\"UiDefinition.json\",\"uri\":\"https://catalogartifact.azureedge.net/publicartifacts/confluentinc.confluent-cloud-azure-stag-78ce1bec-d80b-42f5-abde-3d372576b579/UiDefinition.json\",\"type\":\"Custom\"},{\"name\":\"DefaultTemplate\",\"uri\":\"https://catalogartifact.azureedge.net/publicartifacts/confluentinc.confluent-cloud-azure-stag-78ce1bec-d80b-42f5-abde-3d372576b579/Artifacts/mainTemplate.json\",\"type\":\"Template\"},{\"name\":\"Documents_recommendations-developers-using-confluent-cloud.pdf\",\"uri\":\"https://catalogartifact.azureedge.net/publicartifacts/confluentinc.confluent-cloud-azure-stag-78ce1bec-d80b-42f5-abde-3d372576b579/Artifacts/Documents/recommendations-developers-using-confluent-cloud.pdf\",\"type\":\"Custom\"},{\"name\":\"SampleImage_apps.53299.ef18d5d9-cb9c-4a60-89f2-05d7ff69e05f.38414fed-8958-4bba-bf02-d5d0e43568fc.d40b0f87-579b-45f9-a957-933458800e86\",\"uri\":\"https://catalogartifact.azureedge.net/publicartifacts/confluentinc.confluent-cloud-azure-stag-78ce1bec-d80b-42f5-abde-3d372576b579/Artifacts/SampleImage/apps.53299.ef18d5d9-cb9c-4a60-89f2-05d7ff69e05f.38414fed-8958-4bba-bf02-d5d0e43568fc.d40b0f87-579b-45f9-a957-933458800e86\",\"type\":\"Custom\"}],\"isPrivate\":true,\"isHidden\":false,\"hasFreeTrials\":false,\"isByol\":false,\"isFree\":false,\"isPayg\":false,\"isStopSell\":false,\"cspState\":\"OptIn\",\"isQuantifiable\":false,\"vmSecuritytype\":\"None\"}],\"isThirdParty\":true,\"keywords\":[\"Kafka\",\"Event + streaming\",\"Real time data integration\",\"Apache Kafka\xAE on Confluent + Cloud\u2122 [STAG-LIFTR]\"],\"popularity\":0.0,\"hasFreeTrials\":false,\"isByol\":false,\"isMacc\":false,\"hasFreePlans\":false,\"isQuantifiable\":false,\"hasPaygPlans\":false,\"isReseller\":false,\"isExcludedFromSearch\":false,\"applicableStoreFronts\":1,\"offerVersion\":\"1021\",\"isMicrosoftProduct\":true,\"productOwnershipSellingMotion\":\"3PPAgency\",\"documentLinks\":[{\"id\":\"document0\",\"displayName\":\"Whitepaper: + Recommendations for Developers Using Confluent Cloud\",\"uri\":\"https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RWDsJC\"}],\"offerEnvironment\":0,\"linkedAddIns\":[],\"excludeFromBootstrap\":false,\"disableSendEmailOnPurchase\":true,\"hideFromSaasBlade\":true,\"integratedWithMicrosoftGraphApi\":false,\"id\":\"confluentinc.confluent-cloud-azure-stag\",\"partitionKey\":null,\"_ts\":0,\"_etag\":null}" + headers: + cache-control: + - no-cache + content-length: + - '16295' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 13 May 2021 13:06:35 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-IIS/10.0 + set-cookie: + - ARRAffinity=82b0635b3f18447efed7c3088ba2fffbc37f91433df971dfb94cbe7257168025;Path=/;HttpOnly;Secure;Domain=marketplacerp.azure.com + - ARRAffinitySameSite=82b0635b3f18447efed7c3088ba2fffbc37f91433df971dfb94cbe7257168025;Path=/;HttpOnly;SameSite=None;Secure;Domain=marketplacerp.azure.com + 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-ms-catalog-claims: + - eyJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL21hcmtldHBsYWNlLzIwMTQvMDYvY2xhaW1zL2Nhbm9udHlwZSI6Ik90aGVyIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9tYXJrZXRwbGFjZS8yMDE2LzEyL2NsYWltcy9wcmljaW5nYXVkaWVuY2UiOiJEaXJlY3QtQ29tbWVyY2lhbCIsImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vbWFya2V0cGxhY2UvMjAxNC8wNi9jbGFpbXMvdGVuYW50aWQiOiIyZDY1MTM4NC0wMzgzLTQzMTgtYWJjZi1jYjdkNzBkNTQ2OWUiLCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL21hcmtldHBsYWNlLzIwMTgvMDcvY2xhaW1zL25hdGlvbmFsY2xvdWQiOiJHbG9iYWwiLCJ1cm46bWFya2V0cGxhY2VzZXJ2aWNlczpwZXJtaXNzaW9uIjoiRW50ZXJwcmlzZUNhdGFsb2dCcm93c2UifQ== + x-ms-catalog-parameters: + - eyJhZ3JlZW1lbnRUeXBlIjoiTW9kZXJuIiwiU3VwcG9ydGVkQ29udGVudFZlcnNpb24iOiIyMDE4LjA4LjMxLjAifQ== + x-ms-version: + - 1.0.0.1691 (AzureUX-MarketPlaceRP:master.f122cda9c.210506-2349) + x-powered-by: + - ASP.NET + x-xss-protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: null headers: Accept: - application/json @@ -59,91 +172,151 @@ interactions: - confluent organization create Connection: - keep-alive - Content-Length: - - '370' - Content-Type: + ParameterSetName: + - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags + --name --resource-group + User-Agent: + - python/3.8.8 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 + azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.23.0 (MSI) + accept-language: + - en-US + method: GET + uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/servicePrincipals?$filter=servicePrincipalNames%2Fany%28c%3Ac%20eq%20%27e529c1e5-76ca-44a1-9176-61e364c62876%27%29&api-version=1.6 + response: + body: + string: '{"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient + privileges to complete the operation."},"requestId":"ec1a8ea9-2a88-4baf-9520-865a7aa0212d","date":"2021-05-13T13:06:37"}}' + headers: + access-control-allow-origin: + - '*' + cache-control: + - no-cache + content-length: + - '219' + content-type: + - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 + dataserviceversion: + - 3.0; + date: + - Thu, 13 May 2021 13:06:37 GMT + duration: + - '1988174' + expires: + - '-1' + ocp-aad-diagnostics-server-name: + - //222BDHFCIsXRwfjzwfq6peF4DrVoWNzDYbHVqyG3g= + ocp-aad-session-key: + - FXGRc7l7baID1ikhzK0A9eeUL1LCJlbWZ40dYERy5mkGy9hJqYO2CJsGlMBnA3I00uqHMtDuLj74J7otgWBV6bSVKvldV8c-gYRCijtnFghsbfC4_1EqD9i7XOmdwiFC.bhVJC_L2KTon9Yxrrz7ak45_eJlrW6gK2Rv3hjwbajw + pragma: + - no-cache + request-id: + - ec1a8ea9-2a88-4baf-9520-865a7aa0212d + 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: 403 + message: Forbidden +- request: + body: null + headers: + Accept: - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - confluent organization create + Connection: + - keep-alive ParameterSetName: - - --location --offer-detail --user-detail --tags --name --resource-group + - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags + --name --resource-group User-Agent: - - AZURECLI/2.16.0 azsdk-python-confluentmanagementclient/unknown Python/3.6.9 - (Linux-5.4.0-1031-azure-x86_64-with-Ubuntu-18.04-bionic) - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization?api-version=2020-03-01-preview + - python/3.8.8 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 + azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.23.0 (MSI) + accept-language: + - en-US + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments?$filter=atScope%28%29&api-version=2020-04-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization","name":"myOrganization","type":"Microsoft.Confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2020-12-21T10:08:10.4539598Z","provisioningState":"Accepted","organizationId":null,"ssoUrl":null,"offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent - Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"contoso","lastName":"zhou","emailAddress":"contoso@microsoft.com"}}}' + string: '{"value":[{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"51db33ad-a601-465a-8b47-cbb256be170a","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-06T10:43:17.9528711Z","updatedOn":"2021-05-06T10:43:17.9528711Z","createdBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","updatedBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c3952eca-35cf-4bf0-ad93-26608649f3af","type":"Microsoft.Authorization/roleAssignments","name":"c3952eca-35cf-4bf0-ad93-26608649f3af"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-06T09:31:39.3308127Z","updatedOn":"2021-05-06T09:31:39.3308127Z","createdBy":"","updatedBy":"","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f683861e-c3cd-46c7-9bb9-f698a3f30893","type":"Microsoft.Authorization/roleAssignments","name":"f683861e-c3cd-46c7-9bb9-f698a3f30893"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"dd8aace2-fe12-4e8f-90d3-f884d7ef55f7","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-06T11:06:39.5782089Z","updatedOn":"2021-05-06T11:06:39.5782089Z","createdBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","updatedBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ad8a9e7e-9e0e-4ca1-990b-e86fdaa7795a","type":"Microsoft.Authorization/roleAssignments","name":"ad8a9e7e-9e0e-4ca1-990b-e86fdaa7795a"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"1c002c0a-b68e-4278-aaae-a937f9f66718","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-06T11:07:38.3569260Z","updatedOn":"2021-05-06T11:07:38.3569260Z","createdBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","updatedBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/33811e77-2049-45ad-a098-3a8f00d000e2","type":"Microsoft.Authorization/roleAssignments","name":"33811e77-2049-45ad-a098-3a8f00d000e2"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"1c80e840-6a28-4c22-9e3b-b3bc6c9a6c90","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-11T11:26:36.8702206Z","updatedOn":"2021-05-11T11:26:36.8702206Z","createdBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","updatedBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8737c5a0-51e6-40a4-8e81-46b3b1de35f9","type":"Microsoft.Authorization/roleAssignments","name":"8737c5a0-51e6-40a4-8e81-46b3b1de35f9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"303de27b-b55c-422a-b4b1-0b43de91e070","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-06T11:08:04.6545603Z","updatedOn":"2021-05-06T11:08:04.6545603Z","createdBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","updatedBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d2859d47-90b7-4812-8324-e7a064ce7613","type":"Microsoft.Authorization/roleAssignments","name":"d2859d47-90b7-4812-8324-e7a064ce7613"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"37795044-e781-4806-932b-cc30af6d9f5c","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-06T11:10:18.5571652Z","updatedOn":"2021-05-06T11:10:18.5571652Z","createdBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","updatedBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/74954add-7f1c-4b2a-a5e8-ccc194820631","type":"Microsoft.Authorization/roleAssignments","name":"74954add-7f1c-4b2a-a5e8-ccc194820631"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"76fa7171-2585-4c07-ab64-7c418e9eb56c","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-06T11:08:32.7458569Z","updatedOn":"2021-05-06T11:08:32.7458569Z","createdBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","updatedBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/3af05309-75a5-43f8-9c3f-0d33f508dd70","type":"Microsoft.Authorization/roleAssignments","name":"3af05309-75a5-43f8-9c3f-0d33f508dd70"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"e33ebaeb-83f6-4bb2-acb6-eac394d601ff","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-06T11:06:10.5504295Z","updatedOn":"2021-05-06T11:06:10.5504295Z","createdBy":"51db33ad-a601-465a-8b47-cbb256be170a","updatedBy":"51db33ad-a601-465a-8b47-cbb256be170a","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/9802ad0b-c3b1-4d69-ab87-f6de2e94197b","type":"Microsoft.Authorization/roleAssignments","name":"9802ad0b-c3b1-4d69-ab87-f6de2e94197b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"e529c1e5-76ca-44a1-9176-61e364c62876","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-13T09:10:12.1860376Z","updatedOn":"2021-05-13T09:10:12.1860376Z","createdBy":"51db33ad-a601-465a-8b47-cbb256be170a","updatedBy":"51db33ad-a601-465a-8b47-cbb256be170a","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/0edef328-7eb6-4370-8898-18926dadfcf5","type":"Microsoft.Authorization/roleAssignments","name":"0edef328-7eb6-4370-8898-18926dadfcf5"}]}' headers: - azure-asyncoperation: - - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/eaa4c32d-eadf-47f5-ab0c-de39eec5cdb3?api-version=2020-03-01-preview cache-control: - no-cache content-length: - - '754' + - '8400' content-type: - application/json; charset=utf-8 date: - - Mon, 21 Dec 2020 10:08:11 GMT - etag: - - '"020053ea-0000-3400-0000-5fe0740b0000"' + - Thu, 13 May 2021 13:06:37 GMT expires: - '-1' - location: - - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/eaa4c32d-eadf-47f5-ab0c-de39eec5cdb3?api-version=2020-03-01-preview pragma: - no-cache - request-context: - - appId=cid-v1:44fd1f8b-df35-48c9-8fa6-f5e19b8bb5be - server: - - Kestrel + 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: - - '1198' status: - code: 201 - message: Created + code: 200 + message: OK - request: body: null headers: Accept: - - '*/*' + - application/json Accept-Encoding: - gzip, deflate CommandName: - confluent organization create Connection: - keep-alive + Cookie: + - x-ms-gateway-slice=Production ParameterSetName: - - --location --offer-detail --user-detail --tags --name --resource-group + - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags + --name --resource-group User-Agent: - - AZURECLI/2.16.0 azsdk-python-confluentmanagementclient/unknown Python/3.6.9 - (Linux-5.4.0-1031-azure-x86_64-with-Ubuntu-18.04-bionic) + - python/3.8.8 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 + azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.23.0 (MSI) + accept-language: + - en-US method: GET - uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/eaa4c32d-eadf-47f5-ab0c-de39eec5cdb3?api-version=2020-03-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName%20eq%20%27Owner%27&api-version=2018-01-01-preview response: body: - string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/eaa4c32d-eadf-47f5-ab0c-de39eec5cdb3","name":"eaa4c32d-eadf-47f5-ab0c-de39eec5cdb3","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization","status":"Creating","startTime":"2020-12-21T10:08:09.7905307Z","error":{}}' + string: '{"value":[{"properties":{"roleName":"Owner","type":"BuiltInRole","description":"Grants + full access to manage all resources, including the ability to assign roles + in Azure RBAC.","assignableScopes":["/"],"permissions":[{"actions":["*"],"notActions":[],"dataActions":[],"notDataActions":[]}],"createdOn":"2015-02-02T21:55:09.8806423Z","updatedOn":"2020-08-14T20:13:58.4137852Z","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"}]}' headers: cache-control: - no-cache content-length: - - '453' + - '654' content-type: - application/json; charset=utf-8 date: - - Mon, 21 Dec 2020 10:08:42 GMT - etag: - - '"00002129-0000-3400-0000-5fe074110000"' + - Thu, 13 May 2021 13:06:37 GMT expires: - '-1' pragma: - no-cache - server: - - Kestrel + set-cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -159,7 +332,70 @@ interactions: body: null headers: Accept: - - '*/*' + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - confluent organization create + Connection: + - keep-alive + ParameterSetName: + - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags + --name --resource-group + User-Agent: + - python/3.8.8 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 + azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.23.0 (MSI) + accept-language: + - en-US + method: GET + uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/servicePrincipals?$filter=servicePrincipalNames%2Fany%28c%3Ac%20eq%20%27e529c1e5-76ca-44a1-9176-61e364c62876%27%29&api-version=1.6 + response: + body: + string: '{"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient + privileges to complete the operation."},"requestId":"09078f3d-9296-4073-8d06-c9695fcc3a5d","date":"2021-05-13T13:06:38"}}' + headers: + access-control-allow-origin: + - '*' + cache-control: + - no-cache + content-length: + - '219' + content-type: + - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 + dataserviceversion: + - 3.0; + date: + - Thu, 13 May 2021 13:06:38 GMT + duration: + - '1743319' + expires: + - '-1' + ocp-aad-diagnostics-server-name: + - f8CAO034rA6+UoEEiSoNVMiuPxjAECsuLM/uuKgJfig= + ocp-aad-session-key: + - CD5SXtl9cwXBFUbDQRgMhjBFJapnFU7YNSeWTwgVIRbFJ6FUcTIRCb8U69cSoJG9KCBdO3ieJRz0XN5u5XyPsm9tBCaki_cZXs3FCyTrAJ0s5v1FqvSxrpZ7VQSIsBzZ.4znAEO6TVSULz33ww0DRS0osBCvzonZx74pgnQuU0Nw + pragma: + - no-cache + request-id: + - 09078f3d-9296-4073-8d06-c9695fcc3a5d + 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: 403 + message: Forbidden +- request: + body: null + headers: + Accept: + - application/json Accept-Encoding: - gzip, deflate CommandName: @@ -167,32 +403,33 @@ interactions: Connection: - keep-alive ParameterSetName: - - --location --offer-detail --user-detail --tags --name --resource-group + - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags + --name --resource-group User-Agent: - - AZURECLI/2.16.0 azsdk-python-confluentmanagementclient/unknown Python/3.6.9 - (Linux-5.4.0-1031-azure-x86_64-with-Ubuntu-18.04-bionic) + - python/3.8.8 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 + azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.23.0 (MSI) + accept-language: + - en-US method: GET - uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/eaa4c32d-eadf-47f5-ab0c-de39eec5cdb3?api-version=2020-03-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments?$filter=atScope%28%29&api-version=2020-04-01-preview response: body: - string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/eaa4c32d-eadf-47f5-ab0c-de39eec5cdb3","name":"eaa4c32d-eadf-47f5-ab0c-de39eec5cdb3","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization","status":"Succeeded","startTime":"2020-12-21T10:08:09.7905307Z","endTime":"2020-12-21T10:09:01.4934333Z","error":{},"properties":null}' + string: '{"value":[{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"51db33ad-a601-465a-8b47-cbb256be170a","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-06T10:43:17.9528711Z","updatedOn":"2021-05-06T10:43:17.9528711Z","createdBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","updatedBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/c3952eca-35cf-4bf0-ad93-26608649f3af","type":"Microsoft.Authorization/roleAssignments","name":"c3952eca-35cf-4bf0-ad93-26608649f3af"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-06T09:31:39.3308127Z","updatedOn":"2021-05-06T09:31:39.3308127Z","createdBy":"","updatedBy":"","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/f683861e-c3cd-46c7-9bb9-f698a3f30893","type":"Microsoft.Authorization/roleAssignments","name":"f683861e-c3cd-46c7-9bb9-f698a3f30893"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"dd8aace2-fe12-4e8f-90d3-f884d7ef55f7","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-06T11:06:39.5782089Z","updatedOn":"2021-05-06T11:06:39.5782089Z","createdBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","updatedBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ad8a9e7e-9e0e-4ca1-990b-e86fdaa7795a","type":"Microsoft.Authorization/roleAssignments","name":"ad8a9e7e-9e0e-4ca1-990b-e86fdaa7795a"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"1c002c0a-b68e-4278-aaae-a937f9f66718","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-06T11:07:38.3569260Z","updatedOn":"2021-05-06T11:07:38.3569260Z","createdBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","updatedBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/33811e77-2049-45ad-a098-3a8f00d000e2","type":"Microsoft.Authorization/roleAssignments","name":"33811e77-2049-45ad-a098-3a8f00d000e2"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"1c80e840-6a28-4c22-9e3b-b3bc6c9a6c90","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-11T11:26:36.8702206Z","updatedOn":"2021-05-11T11:26:36.8702206Z","createdBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","updatedBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8737c5a0-51e6-40a4-8e81-46b3b1de35f9","type":"Microsoft.Authorization/roleAssignments","name":"8737c5a0-51e6-40a4-8e81-46b3b1de35f9"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"303de27b-b55c-422a-b4b1-0b43de91e070","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-06T11:08:04.6545603Z","updatedOn":"2021-05-06T11:08:04.6545603Z","createdBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","updatedBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/d2859d47-90b7-4812-8324-e7a064ce7613","type":"Microsoft.Authorization/roleAssignments","name":"d2859d47-90b7-4812-8324-e7a064ce7613"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"37795044-e781-4806-932b-cc30af6d9f5c","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-06T11:10:18.5571652Z","updatedOn":"2021-05-06T11:10:18.5571652Z","createdBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","updatedBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/74954add-7f1c-4b2a-a5e8-ccc194820631","type":"Microsoft.Authorization/roleAssignments","name":"74954add-7f1c-4b2a-a5e8-ccc194820631"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"76fa7171-2585-4c07-ab64-7c418e9eb56c","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-06T11:08:32.7458569Z","updatedOn":"2021-05-06T11:08:32.7458569Z","createdBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","updatedBy":"a9cb2b23-249d-4efa-af64-d7cbe600eae1","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/3af05309-75a5-43f8-9c3f-0d33f508dd70","type":"Microsoft.Authorization/roleAssignments","name":"3af05309-75a5-43f8-9c3f-0d33f508dd70"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"e33ebaeb-83f6-4bb2-acb6-eac394d601ff","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-06T11:06:10.5504295Z","updatedOn":"2021-05-06T11:06:10.5504295Z","createdBy":"51db33ad-a601-465a-8b47-cbb256be170a","updatedBy":"51db33ad-a601-465a-8b47-cbb256be170a","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/9802ad0b-c3b1-4d69-ab87-f6de2e94197b","type":"Microsoft.Authorization/roleAssignments","name":"9802ad0b-c3b1-4d69-ab87-f6de2e94197b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"e529c1e5-76ca-44a1-9176-61e364c62876","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-05-13T09:10:12.1860376Z","updatedOn":"2021-05-13T09:10:12.1860376Z","createdBy":"51db33ad-a601-465a-8b47-cbb256be170a","updatedBy":"51db33ad-a601-465a-8b47-cbb256be170a","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/0edef328-7eb6-4370-8898-18926dadfcf5","type":"Microsoft.Authorization/roleAssignments","name":"0edef328-7eb6-4370-8898-18926dadfcf5"}]}' headers: cache-control: - no-cache content-length: - - '513' + - '8400' content-type: - application/json; charset=utf-8 date: - - Mon, 21 Dec 2020 10:09:12 GMT - etag: - - '"00002229-0000-3400-0000-5fe0743d0000"' + - Thu, 13 May 2021 13:06:38 GMT expires: - '-1' pragma: - no-cache - server: - - Kestrel + set-cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -208,41 +445,45 @@ interactions: body: null headers: Accept: - - '*/*' + - application/json Accept-Encoding: - gzip, deflate CommandName: - confluent organization create Connection: - keep-alive + Cookie: + - x-ms-gateway-slice=Production ParameterSetName: - - --location --offer-detail --user-detail --tags --name --resource-group + - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags + --name --resource-group User-Agent: - - AZURECLI/2.16.0 azsdk-python-confluentmanagementclient/unknown Python/3.6.9 - (Linux-5.4.0-1031-azure-x86_64-with-Ubuntu-18.04-bionic) + - python/3.8.8 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 + azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.23.0 (MSI) + accept-language: + - en-US method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization?api-version=2020-03-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName%20eq%20%27Contributor%27&api-version=2018-01-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization","name":"myOrganization","type":"Microsoft.Confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2020-12-21T10:08:10.4539598Z","provisioningState":"Succeeded","organizationId":"bbf3801b-f454-4916-9cde-05b7c7d46765","ssoUrl":"https://stag.cpdev.cloud/login/sso/azure-ad-oidc","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent - Cloud - Pay as you Go","termUnit":"P1M","status":"Subscribed"},"userDetail":{"firstName":"contoso","lastName":"zhou","emailAddress":"contoso@microsoft.com"}}}' + string: '{"value":[{"properties":{"roleName":"Contributor","type":"BuiltInRole","description":"Grants + full access to manage all resources, but does not allow you to assign roles + in Azure RBAC, manage assignments in Azure Blueprints, or share image galleries.","assignableScopes":["/"],"permissions":[{"actions":["*"],"notActions":["Microsoft.Authorization/*/Delete","Microsoft.Authorization/*/Write","Microsoft.Authorization/elevateAccess/Action","Microsoft.Blueprint/blueprintAssignments/write","Microsoft.Blueprint/blueprintAssignments/delete","Microsoft.Compute/galleries/share/action"],"dataActions":[],"notDataActions":[]}],"createdOn":"2015-02-02T21:55:09.8806423Z","updatedOn":"2020-12-04T00:34:54.8501087Z","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: - - '838' + - '984' content-type: - application/json; charset=utf-8 date: - - Mon, 21 Dec 2020 10:09:12 GMT - etag: - - '"0200b9ea-0000-3400-0000-5fe0743d0000"' + - Thu, 13 May 2021 13:06:38 GMT expires: - '-1' pragma: - no-cache - server: - - Kestrel + set-cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -262,37 +503,648 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - confluent organization wait + - confluent organization create Connection: - keep-alive + Cookie: + - x-ms-gateway-slice=Production ParameterSetName: - - --created --name --resource-group + - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags + --name --resource-group User-Agent: - - AZURECLI/2.16.0 azsdk-python-confluentmanagementclient/unknown Python/3.6.9 - (Linux-5.4.0-1031-azure-x86_64-with-Ubuntu-18.04-bionic) + - python/3.8.8 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 + azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.23.0 (MSI) + accept-language: + - en-US method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization?api-version=2020-03-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions?api-version=2018-01-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization","name":"myOrganization","type":"Microsoft.Confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2020-12-21T10:08:10.4539598Z","provisioningState":"Succeeded","organizationId":"bbf3801b-f454-4916-9cde-05b7c7d46765","ssoUrl":"https://stag.cpdev.cloud/login/sso/azure-ad-oidc","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent - Cloud - Pay as you Go","termUnit":"P1M","status":"Subscribed"},"userDetail":{"firstName":"contoso","lastName":"zhou","emailAddress":"contoso@microsoft.com"}}}' + string: "{\"value\":[{\"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/generateLiveToken/read\",\"Microsoft.Insights/metricAlerts/*\",\"Microsoft.Insights/components/*\",\"Microsoft.Insights/scheduledqueryrules/*\",\"Microsoft.Insights/topology/read\",\"Microsoft.Insights/transactions/read\",\"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\":\"2021-01-19T19:26:12.8117169Z\",\"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\",\"Microsoft.ContainerService/managedClusters/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-08-15T21:38:18.5953853Z\",\"updatedOn\":\"2020-08-10T21:30:17.4985976Z\",\"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\",\"Microsoft.ContainerService/managedClusters/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-08-15T22:04:53.4037241Z\",\"updatedOn\":\"2020-08-10T23:33:17.4901670Z\",\"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/accessToken/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/locations/backupAadProperties/read\",\"Microsoft.RecoveryServices/locations/backupCrrJobs/action\",\"Microsoft.RecoveryServices/locations/backupCrrJob/action\",\"Microsoft.RecoveryServices/locations/backupCrossRegionRestore/action\",\"Microsoft.RecoveryServices/locations/backupCrrOperationResults/read\",\"Microsoft.RecoveryServices/locations/backupCrrOperationsStatus/read\",\"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\":\"2021-01-19T09:16:14.1372232Z\",\"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\u2019t 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\u2019t 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\u2019re 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\":\"Grants + full access to manage all resources, but does not allow you to assign roles + in Azure RBAC, manage assignments in Azure Blueprints, or share image galleries.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"*\"],\"notActions\":[\"Microsoft.Authorization/*/Delete\",\"Microsoft.Authorization/*/Write\",\"Microsoft.Authorization/elevateAccess/Action\",\"Microsoft.Blueprint/blueprintAssignments/write\",\"Microsoft.Blueprint/blueprintAssignments/delete\",\"Microsoft.Compute/galleries/share/action\"],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2020-12-04T00:34:54.8501087Z\",\"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\",\"Microsoft.Billing/billingProperty/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-03-14T16:09:22.8834827Z\",\"updatedOn\":\"2020-12-07T19:54:47.1563148Z\",\"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\",\"Microsoft.Billing/billingProperty/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-03-14T16:09:22.8834827Z\",\"updatedOn\":\"2020-12-07T19:53:58.6391267Z\",\"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/*\",\"Microsoft.KeyVault/managedHsms/*\"],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2016-02-25T17:08:28.5184971Z\",\"updatedOn\":\"2020-09-17T00:42:51.7334302Z\",\"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/dataCollectionRules/*\",\"Microsoft.Insights/dataCollectionRuleAssociations/*\",\"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.AlertsManagement/smartDetectorAlertRules/*\",\"Microsoft.AlertsManagement/actionRules/*\",\"Microsoft.AlertsManagement/smartGroups/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2016-09-21T19:21:08.4345976Z\",\"updatedOn\":\"2020-11-18T00:02:00.4868141Z\",\"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\":\"Grants + full access to manage all resources, including the ability to assign roles + in Azure RBAC.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2020-08-14T20:13:58.4137852Z\",\"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\":\"View + all resources, but does not allow you to make any changes.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"*/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2020-08-14T20:16:04.3791205Z\",\"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/policyexemptions/*\",\"Microsoft.Authorization/policysetdefinitions/*\",\"Microsoft.PolicyInsights/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-08-25T19:08:01.3861639Z\",\"updatedOn\":\"2020-08-20T19:01:05.4449634Z\",\"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/policyExemptions/*\",\"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\":\"2020-08-20T19:15:25.4574979Z\",\"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.Security/iotDefenderSettings/packageDownloads/action\",\"Microsoft.Security/iotDefenderSettings/downloadManagerActivation/action\",\"Microsoft.Security/iotSensors/downloadResetPassword/action\",\"Microsoft.Management/managementGroups/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-05-03T07:48:49.0516559Z\",\"updatedOn\":\"2021-01-04T13:31:17.6216549Z\",\"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\":[\"Microsoft.Sql/managedInstances/azureADOnlyAuthentications/delete\",\"Microsoft.Sql/managedInstances/azureADOnlyAuthentications/write\"],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-12-10T22:57:14.2937983Z\",\"updatedOn\":\"2020-09-23T23:26:54.2667459Z\",\"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/auditingSettings/*\",\"Microsoft.Sql/servers/databases/auditRecords/read\",\"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\":\"2020-10-19T18:19:24.4927972Z\",\"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/locations/administratorAzureAsyncOperation/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/auditingSettings/*\",\"Microsoft.Sql/servers/extendedAuditingSettings/read\",\"Microsoft.Sql/servers/databases/auditingSettings/*\",\"Microsoft.Sql/servers/databases/auditRecords/read\",\"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/devOpsAuditingSettings/*\",\"Microsoft.Sql/servers/firewallRules/*\",\"Microsoft.Sql/servers/read\",\"Microsoft.Sql/servers/securityAlertPolicies/*\",\"Microsoft.Sql/servers/vulnerabilityAssessments/*\",\"Microsoft.Support/*\",\"Microsoft.Sql/servers/azureADOnlyAuthentications/*\",\"Microsoft.Sql/managedInstances/read\",\"Microsoft.Sql/managedInstances/azureADOnlyAuthentications/*\",\"Microsoft.Security/sqlVulnerabilityAssessments/*\",\"Microsoft.Sql/managedInstances/administrators/read\",\"Microsoft.Sql/servers/administrators/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-06-16T18:44:40.4607572Z\",\"updatedOn\":\"2021-03-08T21:18:46.2003218Z\",\"createdBy\":null,\"updatedBy\":null},\"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/auditingSettings/*\",\"Microsoft.Sql/servers/databases/auditingSettings/*\",\"Microsoft.Sql/servers/databases/auditRecords/read\",\"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/devOpsAuditingSettings/*\",\"Microsoft.Sql/servers/extendedAuditingSettings/*\",\"Microsoft.Sql/servers/securityAlertPolicies/*\",\"Microsoft.Sql/servers/vulnerabilityAssessments/*\",\"Microsoft.Sql/servers/azureADOnlyAuthentications/delete\",\"Microsoft.Sql/servers/azureADOnlyAuthentications/write\"],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2021-03-08T21:19:28.9102955Z\",\"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/write\",\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/move/action\",\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action\"],\"notDataActions\":[]}],\"createdOn\":\"2017-12-21T00:01:24.7972312Z\",\"updatedOn\":\"2021-02-04T07:04:50.1529191Z\",\"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\",\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/process/action\"],\"notDataActions\":[]}],\"createdOn\":\"2017-12-21T00:01:24.7972312Z\",\"updatedOn\":\"2021-01-25T01:32:24.1141692Z\",\"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/*\",\"Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/write\",\"Microsoft.DocumentDB/databaseAccounts/sqlRoleDefinitions/delete\",\"Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/write\",\"Microsoft.DocumentDB/databaseAccounts/sqlRoleAssignments/delete\"],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-04-26T17:01:17.0169383Z\",\"updatedOn\":\"2021-02-25T21:29:52.2924071Z\",\"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.Insights/myworkbooks/read\",\"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-11-04T07:51:14.5680135Z\",\"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/automationRules/*\",\"Microsoft.SecurityInsights/cases/*\",\"Microsoft.SecurityInsights/incidents/*\",\"Microsoft.SecurityInsights/threatIntelligence/indicators/appendTags/action\",\"Microsoft.SecurityInsights/threatIntelligence/indicators/query/action\",\"Microsoft.SecurityInsights/threatIntelligence/bulkTag/action\",\"Microsoft.SecurityInsights/threatIntelligence/indicators/appendTags/action\",\"Microsoft.SecurityInsights/threatIntelligence/indicators/replaceTags/action\",\"Microsoft.SecurityInsights/threatIntelligence/queryIndicators/action\",\"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.Insights/myworkbooks/read\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[\"Microsoft.SecurityInsights/cases/*/Delete\",\"Microsoft.SecurityInsights/incidents/*/Delete\"],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-08-28T16:54:07.6467264Z\",\"updatedOn\":\"2020-12-08T13:06:10.4848344Z\",\"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.SecurityInsights/threatIntelligence/indicators/query/action\",\"Microsoft.SecurityInsights/threatIntelligence/queryIndicators/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.Insights/myworkbooks/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-11-04T07:55:29.9187377Z\",\"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/policyexemptions/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\":\"2020-08-20T20:57:17.1579311Z\",\"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.HybridCompute/privateLinkScopes/read\",\"Microsoft.GuestConfiguration/guestConfigurationAssignments/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-10-23T20:15:07.1372870Z\",\"updatedOn\":\"2021-03-23T20:13:08.5139847Z\",\"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/extensions/read\",\"Microsoft.HybridCompute/machines/extensions/write\",\"Microsoft.HybridCompute/machines/extensions/delete\",\"Microsoft.HybridCompute/privateLinkScopes/*\",\"Microsoft.HybridCompute/*/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-10-23T20:24:59.1474607Z\",\"updatedOn\":\"2021-04-28T17:05:32.7694012Z\",\"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\",\"Microsoft.Experimentation/experimentWorkspaces/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/read\",\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/write\",\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/delete\",\"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\":\"2021-03-05T16:02:04.1620231Z\",\"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\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/knowledgebases/read\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/knowledgebases/download/read\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/knowledgebases/generateanswer/action\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/alterations/read\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/endpointkeys/read\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/endpointsettings/read\"],\"notDataActions\":[]}],\"createdOn\":\"2019-12-17T18:26:12.3329439Z\",\"updatedOn\":\"2021-03-11T06:28:58.3427040Z\",\"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\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/knowledgebases/read\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/knowledgebases/download/read\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/knowledgebases/create/write\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/knowledgebases/write\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/knowledgebases/generateanswer/action\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/knowledgebases/train/action\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/alterations/read\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/alterations/write\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/endpointkeys/read\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/endpointkeys/refreshkeys/action\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/endpointsettings/read\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/endpointsettings/write\",\"Microsoft.CognitiveServices/accounts/TextAnalytics/QnAMaker/operations/read\"],\"notDataActions\":[]}],\"createdOn\":\"2019-12-17T18:27:30.6434556Z\",\"updatedOn\":\"2021-03-11T06:28:27.6422359Z\",\"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\",\"Microsoft.Experimentation/experimentWorkspaces/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\",\"Microsoft.Experimentation/experimentWorkspaces/metricwrite/action\",\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/metricwrite/action\"],\"notDataActions\":[]}],\"createdOn\":\"2019-12-18T22:46:33.1116612Z\",\"updatedOn\":\"2021-03-05T15:59:31.1406998Z\",\"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-12-13T02:18:15.6697797Z\",\"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\":\"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 Data Reader\",\"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-10-22T21:06:59.5157226Z\",\"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 Data Owner\",\"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-10-22T21:07:31.8108410Z\",\"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\":[\"Microsoft.Experimentation/experimentWorkspaces/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Experimentation/experimentWorkspaces/read\",\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-03-25T18:05:14.8375678Z\",\"updatedOn\":\"2021-01-11T18:32:43.8283983Z\",\"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\",\"type\":\"BuiltInRole\",\"description\":\"Perform all + data plane operations on a key vault and all objects in it, including certificates, + keys, and secrets. Cannot manage key vault resources or manage role assignments. + Only works for key vaults that use the 'Azure role-based access control' permission + model.\",\"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\":\"2021-01-27T23:26:39.6321098Z\",\"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\",\"type\":\"BuiltInRole\",\"description\":\"Perform + any action on the keys of a key vault, except manage permissions. Only works + for key vaults that use the 'Azure role-based access control' permission model.\",\"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\":\"2021-01-27T23:23:43.2358783Z\",\"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\",\"type\":\"BuiltInRole\",\"description\":\"Perform cryptographic + operations using keys. Only works for key vaults that use the 'Azure role-based + access control' permission model.\",\"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\":\"2021-01-27T23:18:47.5002809Z\",\"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\",\"type\":\"BuiltInRole\",\"description\":\"Perform + any action on the secrets of a key vault, except manage permissions. Only + works for key vaults that use the 'Azure role-based access control' permission + model.\",\"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\":\"2021-01-27T23:07:56.2221281Z\",\"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\",\"type\":\"BuiltInRole\",\"description\":\"Read secret + contents. Only works for key vaults that use the 'Azure role-based access + control' permission model.\",\"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\":\"2021-01-27T22:15:29.1682455Z\",\"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\",\"type\":\"BuiltInRole\",\"description\":\"Perform + any action on the certificates of a key vault, except manage permissions. + Only works for key vaults that use the 'Azure role-based access control' permission + model.\",\"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\":\"2021-01-27T23:25:14.4723643Z\",\"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\",\"type\":\"BuiltInRole\",\"description\":\"Read metadata of + key vaults and its certificates, keys, and secrets. Cannot read sensitive + values such as secret contents or key material. Only works for key vaults + that use the 'Azure role-based access control' permission model.\",\"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\":\"2021-01-27T23:14:42.7151440Z\",\"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 User\",\"type\":\"BuiltInRole\",\"description\":\"Read + metadata of keys and perform wrap/unwrap operations. Only works for key vaults + that use the 'Azure role-based access control' permission model.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.EventGrid/eventSubscriptions/write\",\"Microsoft.EventGrid/eventSubscriptions/read\",\"Microsoft.EventGrid/eventSubscriptions/delete\"],\"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\":\"2021-01-27T23:22:10.9466372Z\",\"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/apps/controllerrevisions/read\",\"Microsoft.Kubernetes/connectedClusters/apps/daemonsets/read\",\"Microsoft.Kubernetes/connectedClusters/apps/deployments/read\",\"Microsoft.Kubernetes/connectedClusters/apps/replicasets/read\",\"Microsoft.Kubernetes/connectedClusters/apps/statefulsets/read\",\"Microsoft.Kubernetes/connectedClusters/autoscaling/horizontalpodautoscalers/read\",\"Microsoft.Kubernetes/connectedClusters/batch/cronjobs/read\",\"Microsoft.Kubernetes/connectedClusters/batch/jobs/read\",\"Microsoft.Kubernetes/connectedClusters/configmaps/read\",\"Microsoft.Kubernetes/connectedClusters/endpoints/read\",\"Microsoft.Kubernetes/connectedClusters/events.k8s.io/events/read\",\"Microsoft.Kubernetes/connectedClusters/events/read\",\"Microsoft.Kubernetes/connectedClusters/extensions/daemonsets/read\",\"Microsoft.Kubernetes/connectedClusters/extensions/deployments/read\",\"Microsoft.Kubernetes/connectedClusters/extensions/ingresses/read\",\"Microsoft.Kubernetes/connectedClusters/extensions/networkpolicies/read\",\"Microsoft.Kubernetes/connectedClusters/extensions/replicasets/read\",\"Microsoft.Kubernetes/connectedClusters/limitranges/read\",\"Microsoft.Kubernetes/connectedClusters/namespaces/read\",\"Microsoft.Kubernetes/connectedClusters/networking.k8s.io/ingresses/read\",\"Microsoft.Kubernetes/connectedClusters/networking.k8s.io/networkpolicies/read\",\"Microsoft.Kubernetes/connectedClusters/persistentvolumeclaims/read\",\"Microsoft.Kubernetes/connectedClusters/pods/read\",\"Microsoft.Kubernetes/connectedClusters/policy/poddisruptionbudgets/read\",\"Microsoft.Kubernetes/connectedClusters/replicationcontrollers/read\",\"Microsoft.Kubernetes/connectedClusters/replicationcontrollers/read\",\"Microsoft.Kubernetes/connectedClusters/resourcequotas/read\",\"Microsoft.Kubernetes/connectedClusters/serviceaccounts/read\",\"Microsoft.Kubernetes/connectedClusters/services/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-06-12T20:51:12.8801199Z\",\"updatedOn\":\"2020-11-02T23:50:46.3225174Z\",\"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/apps/controllerrevisions/read\",\"Microsoft.Kubernetes/connectedClusters/apps/daemonsets/*\",\"Microsoft.Kubernetes/connectedClusters/apps/deployments/*\",\"Microsoft.Kubernetes/connectedClusters/apps/replicasets/*\",\"Microsoft.Kubernetes/connectedClusters/apps/statefulsets/*\",\"Microsoft.Kubernetes/connectedClusters/autoscaling/horizontalpodautoscalers/*\",\"Microsoft.Kubernetes/connectedClusters/batch/cronjobs/*\",\"Microsoft.Kubernetes/connectedClusters/batch/jobs/*\",\"Microsoft.Kubernetes/connectedClusters/configmaps/*\",\"Microsoft.Kubernetes/connectedClusters/endpoints/*\",\"Microsoft.Kubernetes/connectedClusters/events.k8s.io/events/read\",\"Microsoft.Kubernetes/connectedClusters/events/read\",\"Microsoft.Kubernetes/connectedClusters/extensions/daemonsets/*\",\"Microsoft.Kubernetes/connectedClusters/extensions/deployments/*\",\"Microsoft.Kubernetes/connectedClusters/extensions/ingresses/*\",\"Microsoft.Kubernetes/connectedClusters/extensions/networkpolicies/*\",\"Microsoft.Kubernetes/connectedClusters/extensions/replicasets/*\",\"Microsoft.Kubernetes/connectedClusters/limitranges/read\",\"Microsoft.Kubernetes/connectedClusters/namespaces/read\",\"Microsoft.Kubernetes/connectedClusters/networking.k8s.io/ingresses/*\",\"Microsoft.Kubernetes/connectedClusters/networking.k8s.io/networkpolicies/*\",\"Microsoft.Kubernetes/connectedClusters/persistentvolumeclaims/*\",\"Microsoft.Kubernetes/connectedClusters/pods/*\",\"Microsoft.Kubernetes/connectedClusters/policy/poddisruptionbudgets/*\",\"Microsoft.Kubernetes/connectedClusters/replicationcontrollers/*\",\"Microsoft.Kubernetes/connectedClusters/replicationcontrollers/*\",\"Microsoft.Kubernetes/connectedClusters/resourcequotas/read\",\"Microsoft.Kubernetes/connectedClusters/secrets/*\",\"Microsoft.Kubernetes/connectedClusters/serviceaccounts/*\",\"Microsoft.Kubernetes/connectedClusters/services/*\"],\"notDataActions\":[]}],\"createdOn\":\"2020-06-12T20:53:50.6749823Z\",\"updatedOn\":\"2020-11-02T23:48:04.7027508Z\",\"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/apps/controllerrevisions/read\",\"Microsoft.Kubernetes/connectedClusters/apps/daemonsets/*\",\"Microsoft.Kubernetes/connectedClusters/apps/deployments/*\",\"Microsoft.Kubernetes/connectedClusters/apps/replicasets/*\",\"Microsoft.Kubernetes/connectedClusters/apps/statefulsets/*\",\"Microsoft.Kubernetes/connectedClusters/authorization.k8s.io/localsubjectaccessreviews/write\",\"Microsoft.Kubernetes/connectedClusters/autoscaling/horizontalpodautoscalers/*\",\"Microsoft.Kubernetes/connectedClusters/batch/cronjobs/*\",\"Microsoft.Kubernetes/connectedClusters/batch/jobs/*\",\"Microsoft.Kubernetes/connectedClusters/configmaps/*\",\"Microsoft.Kubernetes/connectedClusters/endpoints/*\",\"Microsoft.Kubernetes/connectedClusters/events.k8s.io/events/read\",\"Microsoft.Kubernetes/connectedClusters/events/read\",\"Microsoft.Kubernetes/connectedClusters/extensions/daemonsets/*\",\"Microsoft.Kubernetes/connectedClusters/extensions/deployments/*\",\"Microsoft.Kubernetes/connectedClusters/extensions/ingresses/*\",\"Microsoft.Kubernetes/connectedClusters/extensions/networkpolicies/*\",\"Microsoft.Kubernetes/connectedClusters/extensions/replicasets/*\",\"Microsoft.Kubernetes/connectedClusters/limitranges/read\",\"Microsoft.Kubernetes/connectedClusters/namespaces/read\",\"Microsoft.Kubernetes/connectedClusters/networking.k8s.io/ingresses/*\",\"Microsoft.Kubernetes/connectedClusters/networking.k8s.io/networkpolicies/*\",\"Microsoft.Kubernetes/connectedClusters/persistentvolumeclaims/*\",\"Microsoft.Kubernetes/connectedClusters/pods/*\",\"Microsoft.Kubernetes/connectedClusters/policy/poddisruptionbudgets/*\",\"Microsoft.Kubernetes/connectedClusters/rbac.authorization.k8s.io/rolebindings/*\",\"Microsoft.Kubernetes/connectedClusters/rbac.authorization.k8s.io/roles/*\",\"Microsoft.Kubernetes/connectedClusters/replicationcontrollers/*\",\"Microsoft.Kubernetes/connectedClusters/replicationcontrollers/*\",\"Microsoft.Kubernetes/connectedClusters/resourcequotas/read\",\"Microsoft.Kubernetes/connectedClusters/secrets/*\",\"Microsoft.Kubernetes/connectedClusters/serviceaccounts/*\",\"Microsoft.Kubernetes/connectedClusters/services/*\"],\"notDataActions\":[]}],\"createdOn\":\"2020-06-12T20:57:06.0391177Z\",\"updatedOn\":\"2020-11-02T23:52:48.6202974Z\",\"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\":\"Allows + read-only access to see most objects in a namespace. It does not allow viewing + roles or role bindings. This role does not allow viewing Secrets, since reading + the contents of Secrets enables access to ServiceAccount credentials in the + namespace, which would allow API access as any ServiceAccount in the namespace + (a form of privilege escalation). Applying this role at cluster scope will + give access across all 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.ContainerService/managedClusters/apps/controllerrevisions/read\",\"Microsoft.ContainerService/managedClusters/apps/daemonsets/read\",\"Microsoft.ContainerService/managedClusters/apps/deployments/read\",\"Microsoft.ContainerService/managedClusters/apps/replicasets/read\",\"Microsoft.ContainerService/managedClusters/apps/statefulsets/read\",\"Microsoft.ContainerService/managedClusters/autoscaling/horizontalpodautoscalers/read\",\"Microsoft.ContainerService/managedClusters/batch/cronjobs/read\",\"Microsoft.ContainerService/managedClusters/batch/jobs/read\",\"Microsoft.ContainerService/managedClusters/configmaps/read\",\"Microsoft.ContainerService/managedClusters/endpoints/read\",\"Microsoft.ContainerService/managedClusters/events.k8s.io/events/read\",\"Microsoft.ContainerService/managedClusters/events/read\",\"Microsoft.ContainerService/managedClusters/extensions/daemonsets/read\",\"Microsoft.ContainerService/managedClusters/extensions/deployments/read\",\"Microsoft.ContainerService/managedClusters/extensions/ingresses/read\",\"Microsoft.ContainerService/managedClusters/extensions/networkpolicies/read\",\"Microsoft.ContainerService/managedClusters/extensions/replicasets/read\",\"Microsoft.ContainerService/managedClusters/limitranges/read\",\"Microsoft.ContainerService/managedClusters/namespaces/read\",\"Microsoft.ContainerService/managedClusters/networking.k8s.io/ingresses/read\",\"Microsoft.ContainerService/managedClusters/networking.k8s.io/networkpolicies/read\",\"Microsoft.ContainerService/managedClusters/persistentvolumeclaims/read\",\"Microsoft.ContainerService/managedClusters/pods/read\",\"Microsoft.ContainerService/managedClusters/policy/poddisruptionbudgets/read\",\"Microsoft.ContainerService/managedClusters/replicationcontrollers/read\",\"Microsoft.ContainerService/managedClusters/replicationcontrollers/read\",\"Microsoft.ContainerService/managedClusters/resourcequotas/read\",\"Microsoft.ContainerService/managedClusters/serviceaccounts/read\",\"Microsoft.ContainerService/managedClusters/services/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-07-02T17:53:05.5728294Z\",\"updatedOn\":\"2020-10-22T16:08:11.1332215Z\",\"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\":\"Allows + read/write access to most objects in a namespace.This role does not allow + viewing or modifying roles or role bindings. However, this role allows accessing + Secrets and running Pods as any ServiceAccount in the namespace, so it can + be used to gain the API access levels of any ServiceAccount in the namespace. + Applying this role at cluster scope will give access across all 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.ContainerService/managedClusters/apps/controllerrevisions/read\",\"Microsoft.ContainerService/managedClusters/apps/daemonsets/*\",\"Microsoft.ContainerService/managedClusters/apps/deployments/*\",\"Microsoft.ContainerService/managedClusters/apps/replicasets/*\",\"Microsoft.ContainerService/managedClusters/apps/statefulsets/*\",\"Microsoft.ContainerService/managedClusters/autoscaling/horizontalpodautoscalers/*\",\"Microsoft.ContainerService/managedClusters/batch/cronjobs/*\",\"Microsoft.ContainerService/managedClusters/batch/jobs/*\",\"Microsoft.ContainerService/managedClusters/configmaps/*\",\"Microsoft.ContainerService/managedClusters/endpoints/*\",\"Microsoft.ContainerService/managedClusters/events.k8s.io/events/read\",\"Microsoft.ContainerService/managedClusters/events/read\",\"Microsoft.ContainerService/managedClusters/extensions/daemonsets/*\",\"Microsoft.ContainerService/managedClusters/extensions/deployments/*\",\"Microsoft.ContainerService/managedClusters/extensions/ingresses/*\",\"Microsoft.ContainerService/managedClusters/extensions/networkpolicies/*\",\"Microsoft.ContainerService/managedClusters/extensions/replicasets/*\",\"Microsoft.ContainerService/managedClusters/limitranges/read\",\"Microsoft.ContainerService/managedClusters/namespaces/read\",\"Microsoft.ContainerService/managedClusters/networking.k8s.io/ingresses/*\",\"Microsoft.ContainerService/managedClusters/networking.k8s.io/networkpolicies/*\",\"Microsoft.ContainerService/managedClusters/persistentvolumeclaims/*\",\"Microsoft.ContainerService/managedClusters/pods/*\",\"Microsoft.ContainerService/managedClusters/policy/poddisruptionbudgets/*\",\"Microsoft.ContainerService/managedClusters/replicationcontrollers/*\",\"Microsoft.ContainerService/managedClusters/replicationcontrollers/*\",\"Microsoft.ContainerService/managedClusters/resourcequotas/read\",\"Microsoft.ContainerService/managedClusters/secrets/*\",\"Microsoft.ContainerService/managedClusters/serviceaccounts/*\",\"Microsoft.ContainerService/managedClusters/services/*\"],\"notDataActions\":[]}],\"createdOn\":\"2020-07-02T17:54:51.9644983Z\",\"updatedOn\":\"2020-10-22T16:10:35.0181117Z\",\"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.Authorization/*/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.ServicesHub/connectors/write\",\"Microsoft.ServicesHub/connectors/read\",\"Microsoft.ServicesHub/connectors/delete\",\"Microsoft.ServicesHub/connectors/checkAssessmentEntitlement/action\",\"Microsoft.ServicesHub/supportOfferingEntitlement/read\",\"Microsoft.ServicesHub/workspaces/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-07-20T17:57:22.0644902Z\",\"updatedOn\":\"2020-10-06T17:18:28.4647301Z\",\"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\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-07-28T17:37:00.7637445Z\",\"updatedOn\":\"2020-07-30T18:00:32.2764334Z\",\"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/auth/accessKey/action\",\"Microsoft.SignalRService/SignalR/serverConnection/write\"],\"notDataActions\":[]}],\"createdOn\":\"2020-07-29T06:54:40.1201435Z\",\"updatedOn\":\"2020-10-23T08:23:46.8454102Z\",\"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\"},{\"properties\":{\"roleName\":\"SignalR + Serverless Contributor (Preview)\",\"type\":\"BuiltInRole\",\"description\":\"Lets + your app access service in serverless mode with AAD auth options.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.SignalRService/SignalR/auth/clientToken/action\"],\"notDataActions\":[]}],\"createdOn\":\"2020-07-29T09:35:32.2764751Z\",\"updatedOn\":\"2020-10-23T08:24:24.5713531Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fd53cd77-2268-407a-8f46-7e7863d0f521\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"fd53cd77-2268-407a-8f46-7e7863d0f521\"},{\"properties\":{\"roleName\":\"Collaborative + Data Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Can manage data + packages of a collaborative.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.IndustryDataLifecycle/custodianCollaboratives/*/read\",\"Microsoft.IndustryDataLifecycle/memberCollaboratives/*/read\",\"Microsoft.IndustryDataLifecycle/locations/dataPackages/*\",\"Microsoft.IndustryDataLifecycle/custodianCollaboratives/receivedDataPackages/*\",\"Microsoft.IndustryDataLifecycle/custodianCollaboratives/rejectDataPackage/action\",\"Microsoft.IndustryDataLifecycle/memberCollaboratives/sharedDataPackages/*\",\"Microsoft.IndustryDataLifecycle/custodianCollaboratives/dataModels/*\",\"Microsoft.IndustryDataLifecycle/custodianCollaboratives/auditLogs/action\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-08-14T11:58:31.8973556Z\",\"updatedOn\":\"2021-03-17T06:19:53.4915361Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/daa9e50b-21df-454c-94a6-a8050adab352\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"daa9e50b-21df-454c-94a6-a8050adab352\"},{\"properties\":{\"roleName\":\"Device + Update Reader\",\"type\":\"BuiltInRole\",\"description\":\"Gives you read + access to management and content operations, but does not allow making changes\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\",\"Microsoft.Insights/alertRules/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.DeviceUpdate/accounts/instances/updates/read\",\"Microsoft.DeviceUpdate/accounts/instances/management/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-08-21T23:40:19.2373610Z\",\"updatedOn\":\"2020-08-21T23:40:19.2373610Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e9dba6fb-3d52-4cf0-bce3-f06ce71b9e0f\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e9dba6fb-3d52-4cf0-bce3-f06ce71b9e0f\"},{\"properties\":{\"roleName\":\"Device + Update Administrator\",\"type\":\"BuiltInRole\",\"description\":\"Gives you + full access to management and content operations\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\",\"Microsoft.Insights/alertRules/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.DeviceUpdate/accounts/instances/updates/read\",\"Microsoft.DeviceUpdate/accounts/instances/updates/write\",\"Microsoft.DeviceUpdate/accounts/instances/updates/delete\",\"Microsoft.DeviceUpdate/accounts/instances/management/read\",\"Microsoft.DeviceUpdate/accounts/instances/management/write\",\"Microsoft.DeviceUpdate/accounts/instances/management/delete\"],\"notDataActions\":[]}],\"createdOn\":\"2020-08-21T23:56:22.3520510Z\",\"updatedOn\":\"2020-08-21T23:56:22.3520510Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/02ca0879-e8e4-47a5-a61e-5c618b76e64a\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"02ca0879-e8e4-47a5-a61e-5c618b76e64a\"},{\"properties\":{\"roleName\":\"Device + Update Content Administrator\",\"type\":\"BuiltInRole\",\"description\":\"Gives + you full access to content operations\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\",\"Microsoft.Insights/alertRules/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.DeviceUpdate/accounts/instances/updates/read\",\"Microsoft.DeviceUpdate/accounts/instances/updates/write\",\"Microsoft.DeviceUpdate/accounts/instances/updates/delete\"],\"notDataActions\":[]}],\"createdOn\":\"2020-08-21T23:58:18.4255500Z\",\"updatedOn\":\"2020-08-21T23:58:18.4255500Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/0378884a-3af5-44ab-8323-f5b22f9f3c98\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"0378884a-3af5-44ab-8323-f5b22f9f3c98\"},{\"properties\":{\"roleName\":\"Device + Update Deployments Administrator\",\"type\":\"BuiltInRole\",\"description\":\"Gives + you full access to management operations\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\",\"Microsoft.Insights/alertRules/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.DeviceUpdate/accounts/instances/management/read\",\"Microsoft.DeviceUpdate/accounts/instances/management/write\",\"Microsoft.DeviceUpdate/accounts/instances/management/delete\"],\"notDataActions\":[]}],\"createdOn\":\"2020-08-21T23:59:52.1001666Z\",\"updatedOn\":\"2020-08-21T23:59:52.1001666Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e4237640-0e3d-4a46-8fda-70bc94856432\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e4237640-0e3d-4a46-8fda-70bc94856432\"},{\"properties\":{\"roleName\":\"Device + Update Deployments Reader\",\"type\":\"BuiltInRole\",\"description\":\"Gives + you read access to management operations, but does not allow making changes\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\",\"Microsoft.Insights/alertRules/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.DeviceUpdate/accounts/instances/management/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-08-22T00:01:34.7053630Z\",\"updatedOn\":\"2020-08-22T00:01:34.7053630Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/49e2f5d2-7741-4835-8efa-19e1fe35e47f\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"49e2f5d2-7741-4835-8efa-19e1fe35e47f\"},{\"properties\":{\"roleName\":\"Device + Update Content Reader\",\"type\":\"BuiltInRole\",\"description\":\"Gives you + read access to content operations, but does not allow making changes\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\",\"Microsoft.Insights/alertRules/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.DeviceUpdate/accounts/instances/updates/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-08-22T00:02:43.3299181Z\",\"updatedOn\":\"2020-08-22T00:02:43.3299181Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d1ee9a80-8b14-47f0-bdc2-f4a351625a7b\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"d1ee9a80-8b14-47f0-bdc2-f4a351625a7b\"},{\"properties\":{\"roleName\":\"Cognitive + Services Metrics Advisor Administrator\",\"type\":\"BuiltInRole\",\"description\":\"Full + access to the project, including the system level configuration.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/MetricsAdvisor/*\"],\"notDataActions\":[]}],\"createdOn\":\"2020-09-10T07:46:47.5804491Z\",\"updatedOn\":\"2020-09-16T12:07:16.3975746Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/cb43c632-a144-4ec5-977c-e80c4affc34a\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"cb43c632-a144-4ec5-977c-e80c4affc34a\"},{\"properties\":{\"roleName\":\"Cognitive + Services Metrics Advisor User\",\"type\":\"BuiltInRole\",\"description\":\"Access + to the project.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/MetricsAdvisor/*\"],\"notDataActions\":[\"Microsoft.CognitiveServices/accounts/MetricsAdvisor/stats/*\"]}],\"createdOn\":\"2020-09-10T07:47:59.6195639Z\",\"updatedOn\":\"2020-09-16T12:06:29.1731967Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/3b20f47b-3825-43cb-8114-4bd2201156a8\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"3b20f47b-3825-43cb-8114-4bd2201156a8\"},{\"properties\":{\"roleName\":\"Schema + Registry Reader (Preview)\",\"type\":\"BuiltInRole\",\"description\":\"Read + and list Schema Registry groups and schemas.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.EventHub/namespaces/schemagroups/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.EventHub/namespaces/schemas/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-09-13T06:31:38.0272740Z\",\"updatedOn\":\"2020-09-13T06:31:38.0272740Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/2c56ea50-c6b3-40a6-83c0-9d98858bc7d2\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"2c56ea50-c6b3-40a6-83c0-9d98858bc7d2\"},{\"properties\":{\"roleName\":\"Schema + Registry Contributor (Preview)\",\"type\":\"BuiltInRole\",\"description\":\"Read, + write, and delete Schema Registry groups and schemas.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.EventHub/namespaces/schemagroups/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.EventHub/namespaces/schemas/*\"],\"notDataActions\":[]}],\"createdOn\":\"2020-09-13T06:48:26.6032931Z\",\"updatedOn\":\"2020-09-13T06:48:26.6032931Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5dffeca3-4936-4216-b2bc-10343a5abb25\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5dffeca3-4936-4216-b2bc-10343a5abb25\"},{\"properties\":{\"roleName\":\"AgFood + Platform Service Reader\",\"type\":\"BuiltInRole\",\"description\":\"Provides + read access to AgFood Platform Service\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.AgFoodPlatform/*/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-09-14T10:21:08.9138820Z\",\"updatedOn\":\"2020-09-14T10:21:08.9138820Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7ec7ccdc-f61e-41fe-9aaf-980df0a44eba\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7ec7ccdc-f61e-41fe-9aaf-980df0a44eba\"},{\"properties\":{\"roleName\":\"AgFood + Platform Service Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Provides + contribute access to AgFood Platform Service\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.AgFoodPlatform/*/action\",\"Microsoft.AgFoodPlatform/*/read\",\"Microsoft.AgFoodPlatform/*/write\"],\"notDataActions\":[\"Microsoft.AgFoodPlatform/farmers/write\"]}],\"createdOn\":\"2020-09-14T10:21:09.7239169Z\",\"updatedOn\":\"2020-10-27T09:45:30.5740183Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8508508a-4469-4e45-963b-2518ee0bb728\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8508508a-4469-4e45-963b-2518ee0bb728\"},{\"properties\":{\"roleName\":\"AgFood + Platform Service Admin\",\"type\":\"BuiltInRole\",\"description\":\"Provides + admin access to AgFood Platform Service\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.AgFoodPlatform/*\"],\"notDataActions\":[]}],\"createdOn\":\"2020-09-14T10:21:09.8039209Z\",\"updatedOn\":\"2020-09-14T10:21:09.8039209Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/f8da80de-1ff9-4747-ad80-a19b7f6079e3\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"f8da80de-1ff9-4747-ad80-a19b7f6079e3\"},{\"properties\":{\"roleName\":\"Managed + HSM contributor\",\"type\":\"BuiltInRole\",\"description\":\"Lets you manage + managed HSM pools, but not access to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.KeyVault/managedHSMs/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-09-16T21:47:01.1291104Z\",\"updatedOn\":\"2020-09-16T21:47:01.1291104Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18500a29-7fe2-46b2-a342-b16a415e101d\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"18500a29-7fe2-46b2-a342-b16a415e101d\"},{\"properties\":{\"roleName\":\"Security + Detonation Chamber Submitter\",\"type\":\"BuiltInRole\",\"description\":\"Allowed + to create submissions to Security Detonation Chamber\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.SecurityDetonation/chambers/submissions/delete\",\"Microsoft.SecurityDetonation/chambers/submissions/write\",\"Microsoft.SecurityDetonation/chambers/submissions/read\",\"Microsoft.SecurityDetonation/chambers/submissions/files/read\",\"Microsoft.SecurityDetonation/chambers/submissions/accesskeyview/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-10-01T08:55:21.3980274Z\",\"updatedOn\":\"2021-01-24T09:15:55.0454625Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/0b555d9b-b4a7-4f43-b330-627f0e5be8f0\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"0b555d9b-b4a7-4f43-b330-627f0e5be8f0\"},{\"properties\":{\"roleName\":\"SignalR + Service Reader (Preview)\",\"type\":\"BuiltInRole\",\"description\":\"Read-only + access to Azure SignalR Service REST APIs\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.SignalRService/SignalR/group/read\",\"Microsoft.SignalRService/SignalR/clientConnection/read\",\"Microsoft.SignalRService/SignalR/user/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-10-13T09:19:05.6463616Z\",\"updatedOn\":\"2020-10-23T08:25:22.8928130Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ddde6b66-c0df-4114-a159-3618637b3035\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ddde6b66-c0df-4114-a159-3618637b3035\"},{\"properties\":{\"roleName\":\"SignalR + Service Owner (Preview)\",\"type\":\"BuiltInRole\",\"description\":\"Full + access to Azure SignalR Service REST APIs\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.SignalRService/SignalR/auth/accessKey/action\",\"Microsoft.SignalRService/SignalR/auth/clientToken/action\",\"Microsoft.SignalRService/SignalR/hub/send/action\",\"Microsoft.SignalRService/SignalR/group/send/action\",\"Microsoft.SignalRService/SignalR/group/read\",\"Microsoft.SignalRService/SignalR/group/write\",\"Microsoft.SignalRService/SignalR/clientConnection/send/action\",\"Microsoft.SignalRService/SignalR/clientConnection/read\",\"Microsoft.SignalRService/SignalR/clientConnection/write\",\"Microsoft.SignalRService/SignalR/user/send/action\",\"Microsoft.SignalRService/SignalR/user/read\",\"Microsoft.SignalRService/SignalR/user/write\"],\"notDataActions\":[]}],\"createdOn\":\"2020-10-13T09:20:32.1501410Z\",\"updatedOn\":\"2021-03-24T09:39:35.1558342Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7e4f1700-ea5a-4f59-8f37-079cfe29dce3\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7e4f1700-ea5a-4f59-8f37-079cfe29dce3\"},{\"properties\":{\"roleName\":\"Reservation + Purchaser\",\"type\":\"BuiltInRole\",\"description\":\"Lets you purchase reservations\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Resources/subscriptions/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Capacity/register/action\",\"Microsoft.Compute/register/action\",\"Microsoft.SQL/register/action\",\"Microsoft.Consumption/register/action\",\"Microsoft.Capacity/catalogs/read\",\"Microsoft.Authorization/roleAssignments/read\",\"Microsoft.Consumption/reservationRecommendations/read\",\"Microsoft.Support/supporttickets/write\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-10-23T20:22:48.9217751Z\",\"updatedOn\":\"2020-10-23T20:22:48.9217751Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/f7b75c60-3036-4b75-91c3-6b41c27c1689\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"f7b75c60-3036-4b75-91c3-6b41c27c1689\"},{\"properties\":{\"roleName\":\"AzureML + Metrics Writer (preview)\",\"type\":\"BuiltInRole\",\"description\":\"Lets + you write metrics to AzureML workspace\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.MachineLearningServices/workspaces/metrics/*/write\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-10-27T16:55:19.5664950Z\",\"updatedOn\":\"2020-10-28T19:17:09.2941184Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/635dd51f-9968-44d3-b7fb-6d9a6bd613ae\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"635dd51f-9968-44d3-b7fb-6d9a6bd613ae\"},{\"properties\":{\"roleName\":\"Storage + Account Backup Contributor Role\",\"type\":\"BuiltInRole\",\"description\":\"Storage + Account Backup Contributors are allowed to perform backup and restore of Storage + Account.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Authorization/locks/read\",\"Microsoft.Authorization/locks/write\",\"Microsoft.Authorization/locks/delete\",\"Microsoft.Features/features/read\",\"Microsoft.Features/providers/features/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/operations/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\"Microsoft.Storage/storageAccounts/blobServices/read\",\"Microsoft.Storage/storageAccounts/blobServices/write\",\"Microsoft.Storage/storageAccounts/read\",\"Microsoft.Storage/storageAccounts/restoreBlobRanges/action\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-11-02T23:32:50.4203469Z\",\"updatedOn\":\"2020-11-18T22:53:07.0632395Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e5e2a7ff-d759-4cd2-bb51-3152d37e2eb1\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e5e2a7ff-d759-4cd2-bb51-3152d37e2eb1\"},{\"properties\":{\"roleName\":\"Experimentation + Metric Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Allows for + creation, writes and reads to the metric set via the metrics service APIs.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Experimentation/experimentWorkspaces/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/read\",\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/metricwrite/action\",\"Microsoft.Experimentation/experimentWorkspaces/metricwrite/action\",\"Microsoft.Experimentation/experimentWorkspaces/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-11-10T20:07:53.7535885Z\",\"updatedOn\":\"2021-03-05T16:14:20.5696005Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/6188b7c9-7d01-4f99-a59f-c88b630326c0\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"6188b7c9-7d01-4f99-a59f-c88b630326c0\"},{\"properties\":{\"roleName\":\"Project + Babylon Data Curator\",\"type\":\"BuiltInRole\",\"description\":\"The Microsoft.ProjectBabylon + data curator can create, read, modify and delete catalog data objects and + establish relationships between objects. This role is in preview and subject + to change.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ProjectBabylon/accounts/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.ProjectBabylon/accounts/data/read\",\"Microsoft.ProjectBabylon/accounts/data/write\"],\"notDataActions\":[]}],\"createdOn\":\"2020-11-14T02:31:33.7988825Z\",\"updatedOn\":\"2020-11-20T21:21:21.9658575Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9ef4ef9c-a049-46b0-82ab-dd8ac094c889\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"9ef4ef9c-a049-46b0-82ab-dd8ac094c889\"},{\"properties\":{\"roleName\":\"Project + Babylon Data Reader\",\"type\":\"BuiltInRole\",\"description\":\"The Microsoft.ProjectBabylon + data reader can read catalog data objects. This role is in preview and subject + to change.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ProjectBabylon/accounts/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.ProjectBabylon/accounts/data/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-11-14T02:33:13.5342351Z\",\"updatedOn\":\"2020-11-20T21:21:51.9362426Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c8d896ba-346d-4f50-bc1d-7d1c84130446\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c8d896ba-346d-4f50-bc1d-7d1c84130446\"},{\"properties\":{\"roleName\":\"Project + Babylon Data Source Administrator\",\"type\":\"BuiltInRole\",\"description\":\"The + Microsoft.ProjectBabylon data source administrator can manage data sources + and data scans. This role is in preview and subject to change.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ProjectBabylon/accounts/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.ProjectBabylon/accounts/scan/read\",\"Microsoft.ProjectBabylon/accounts/scan/write\"],\"notDataActions\":[]}],\"createdOn\":\"2020-11-14T02:34:01.8401954Z\",\"updatedOn\":\"2020-11-20T21:22:15.6138058Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/05b7651b-dc44-475e-b74d-df3db49fae0f\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"05b7651b-dc44-475e-b74d-df3db49fae0f\"},{\"properties\":{\"roleName\":\"Purview + Data Curator\",\"type\":\"BuiltInRole\",\"description\":\"The Microsoft.Purview + data curator can create, read, modify and delete catalog data objects and + establish relationships between objects. This role is in preview and subject + to change.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Purview/accounts/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Purview/accounts/data/read\",\"Microsoft.Purview/accounts/data/write\"],\"notDataActions\":[]}],\"createdOn\":\"2020-11-14T02:37:15.0123345Z\",\"updatedOn\":\"2020-11-20T21:24:12.8131677Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8a3c2885-9b38-4fd2-9d99-91af537c1347\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8a3c2885-9b38-4fd2-9d99-91af537c1347\"},{\"properties\":{\"roleName\":\"Purview + Data Reader\",\"type\":\"BuiltInRole\",\"description\":\"The Microsoft.Purview + data reader can read catalog data objects. This role is in preview and subject + to change.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Purview/accounts/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Purview/accounts/data/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-11-14T02:39:22.2344740Z\",\"updatedOn\":\"2020-11-20T21:24:29.5157346Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ff100721-1b9d-43d8-af52-42b69c1272db\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ff100721-1b9d-43d8-af52-42b69c1272db\"},{\"properties\":{\"roleName\":\"Purview + Data Source Administrator\",\"type\":\"BuiltInRole\",\"description\":\"The + Microsoft.Purview data source administrator can manage data sources and data + scans. This role is in preview and subject to change.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Purview/accounts/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Purview/accounts/scan/read\",\"Microsoft.Purview/accounts/scan/write\"],\"notDataActions\":[]}],\"createdOn\":\"2020-11-14T02:40:05.0975648Z\",\"updatedOn\":\"2020-11-20T21:24:43.5940624Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/200bba9e-f0c8-430f-892b-6f0794863803\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"200bba9e-f0c8-430f-892b-6f0794863803\"},{\"properties\":{\"roleName\":\"Application + Group Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Contributor + of the Application Group.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.DesktopVirtualization/applicationgroups/*\",\"Microsoft.DesktopVirtualization/hostpools/read\",\"Microsoft.DesktopVirtualization/hostpools/sessionhosts/read\",\"Microsoft.DesktopVirtualization/workspaces/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-12-03T23:26:00.2784962Z\",\"updatedOn\":\"2020-12-04T23:46:35.0341772Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ca6382a4-1721-4bcf-a114-ff0c70227b6b\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ca6382a4-1721-4bcf-a114-ff0c70227b6b\"},{\"properties\":{\"roleName\":\"Desktop + Virtualization Reader\",\"type\":\"BuiltInRole\",\"description\":\"Reader + of Desktop Virtualization.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.DesktopVirtualization/*/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/read\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-12-11T21:36:19.0140629Z\",\"updatedOn\":\"2020-12-11T21:36:19.0140629Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/49a72310-ab8d-41df-bbb0-79b649203868\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"49a72310-ab8d-41df-bbb0-79b649203868\"},{\"properties\":{\"roleName\":\"Desktop + Virtualization Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Contributor + of Desktop Virtualization.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.DesktopVirtualization/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-12-11T21:37:16.2910337Z\",\"updatedOn\":\"2020-12-11T21:37:16.2910337Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/082f0a83-3be5-4ba1-904c-961cca79b387\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"082f0a83-3be5-4ba1-904c-961cca79b387\"},{\"properties\":{\"roleName\":\"Desktop + Virtualization Workspace Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Contributor + of the Desktop Virtualization Workspace.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.DesktopVirtualization/workspaces/*\",\"Microsoft.DesktopVirtualization/applicationgroups/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-12-11T21:38:29.6089216Z\",\"updatedOn\":\"2020-12-11T21:38:29.6089216Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/21efdde3-836f-432b-bf3d-3e8e734d4b2b\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"21efdde3-836f-432b-bf3d-3e8e734d4b2b\"},{\"properties\":{\"roleName\":\"Desktop + Virtualization User Session Operator\",\"type\":\"BuiltInRole\",\"description\":\"Operator + of the Desktop Virtualization Uesr Session.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.DesktopVirtualization/hostpools/read\",\"Microsoft.DesktopVirtualization/hostpools/sessionhosts/read\",\"Microsoft.DesktopVirtualization/hostpools/sessionhosts/usersessions/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-12-11T21:39:16.9100273Z\",\"updatedOn\":\"2020-12-11T21:39:16.9100273Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ea4bfff8-7fb4-485a-aadd-d4129a0ffaa6\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ea4bfff8-7fb4-485a-aadd-d4129a0ffaa6\"},{\"properties\":{\"roleName\":\"Desktop + Virtualization Session Host Operator\",\"type\":\"BuiltInRole\",\"description\":\"Operator + of the Desktop Virtualization Session Host.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.DesktopVirtualization/hostpools/read\",\"Microsoft.DesktopVirtualization/hostpools/sessionhosts/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-12-11T21:39:53.2569741Z\",\"updatedOn\":\"2020-12-11T21:39:53.2569741Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/2ad6aaab-ead9-4eaa-8ac5-da422f562408\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"2ad6aaab-ead9-4eaa-8ac5-da422f562408\"},{\"properties\":{\"roleName\":\"Desktop + Virtualization Host Pool Reader\",\"type\":\"BuiltInRole\",\"description\":\"Reader + of the Desktop Virtualization Host Pool.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.DesktopVirtualization/hostpools/*/read\",\"Microsoft.DesktopVirtualization/hostpools/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/read\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-12-11T21:40:33.1430834Z\",\"updatedOn\":\"2020-12-11T21:40:33.1430834Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ceadfde2-b300-400a-ab7b-6143895aa822\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ceadfde2-b300-400a-ab7b-6143895aa822\"},{\"properties\":{\"roleName\":\"Desktop + Virtualization Host Pool Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Contributor + of the Desktop Virtualization Host Pool.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.DesktopVirtualization/hostpools/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-12-11T21:40:57.2976187Z\",\"updatedOn\":\"2020-12-11T21:40:57.2976187Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e307426c-f9b6-4e81-87de-d99efb3c32bc\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e307426c-f9b6-4e81-87de-d99efb3c32bc\"},{\"properties\":{\"roleName\":\"Desktop + Virtualization Application Group Reader\",\"type\":\"BuiltInRole\",\"description\":\"Reader + of the Desktop Virtualization Application Group.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.DesktopVirtualization/applicationgroups/*/read\",\"Microsoft.DesktopVirtualization/applicationgroups/read\",\"Microsoft.DesktopVirtualization/hostpools/read\",\"Microsoft.DesktopVirtualization/hostpools/sessionhosts/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/read\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-12-11T21:41:18.0287398Z\",\"updatedOn\":\"2020-12-11T21:41:18.0287398Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/aebf23d0-b568-4e86-b8f9-fe83a2c6ab55\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"aebf23d0-b568-4e86-b8f9-fe83a2c6ab55\"},{\"properties\":{\"roleName\":\"Desktop + Virtualization Application Group Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Contributor + of the Desktop Virtualization Application Group.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.DesktopVirtualization/applicationgroups/*\",\"Microsoft.DesktopVirtualization/hostpools/read\",\"Microsoft.DesktopVirtualization/hostpools/sessionhosts/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-12-11T21:41:38.6205531Z\",\"updatedOn\":\"2020-12-11T21:41:38.6205531Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/86240b0e-9422-4c43-887b-b61143f32ba8\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"86240b0e-9422-4c43-887b-b61143f32ba8\"},{\"properties\":{\"roleName\":\"Desktop + Virtualization Workspace Reader\",\"type\":\"BuiltInRole\",\"description\":\"Reader + of the Desktop Virtualization Workspace.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.DesktopVirtualization/workspaces/read\",\"Microsoft.DesktopVirtualization/applicationgroups/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/read\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-12-11T21:41:58.1892707Z\",\"updatedOn\":\"2020-12-11T21:41:58.1892707Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/0fa44ee9-7a7d-466b-9bb2-2bf446b1204d\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"0fa44ee9-7a7d-466b-9bb2-2bf446b1204d\"},{\"properties\":{\"roleName\":\"Disk + Backup Reader\",\"type\":\"BuiltInRole\",\"description\":\"Provides permission + to backup vault to perform disk backup.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Compute/disks/read\",\"Microsoft.Compute/disks/beginGetAccess/action\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-12-15T07:39:03.8394514Z\",\"updatedOn\":\"2020-12-18T05:00:23.3015246Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/3e5e47e6-65f7-47ef-90b5-e5dd4d455f24\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"3e5e47e6-65f7-47ef-90b5-e5dd4d455f24\"},{\"properties\":{\"roleName\":\"Autonomous + Development Platform Data Contributor (Preview)\",\"type\":\"BuiltInRole\",\"description\":\"Grants + permissions to upload and manage new Autonomous Development Platform measurements.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.AutonomousDevelopmentPlatform/accounts/*/read\",\"Microsoft.Authorization/*/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.AutonomousDevelopmentPlatform/accounts/dataPools/discoveries/*\",\"Microsoft.AutonomousDevelopmentPlatform/accounts/dataPools/uploads/*\",\"Microsoft.AutonomousDevelopmentPlatform/accounts/dataPools/measurements/states/new/*\",\"Microsoft.AutonomousDevelopmentPlatform/accounts/measurementCollections/*\"],\"notDataActions\":[\"Microsoft.AutonomousDevelopmentPlatform/accounts/dataPools/measurements/states/new/changeState/action\"]}],\"createdOn\":\"2020-12-15T11:30:01.7459379Z\",\"updatedOn\":\"2021-02-08T20:04:29.9188777Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b8b15564-4fa6-4a59-ab12-03e1d9594795\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b8b15564-4fa6-4a59-ab12-03e1d9594795\"},{\"properties\":{\"roleName\":\"Autonomous + Development Platform Data Reader (Preview)\",\"type\":\"BuiltInRole\",\"description\":\"Grants + read access to Autonomous Development Platform data.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.AutonomousDevelopmentPlatform/accounts/*/read\",\"Microsoft.Authorization/*/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.AutonomousDevelopmentPlatform/accounts/*/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-12-15T12:11:31.9843256Z\",\"updatedOn\":\"2021-02-08T16:16:53.0489887Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d63b75f7-47ea-4f27-92ac-e0d173aaf093\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"d63b75f7-47ea-4f27-92ac-e0d173aaf093\"},{\"properties\":{\"roleName\":\"Autonomous + Development Platform Data Owner (Preview)\",\"type\":\"BuiltInRole\",\"description\":\"Grants + full access to Autonomous Development Platform data.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.AutonomousDevelopmentPlatform/accounts/*/read\",\"Microsoft.Authorization/*/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.AutonomousDevelopmentPlatform/accounts/*\"],\"notDataActions\":[]}],\"createdOn\":\"2020-12-15T12:13:59.9702378Z\",\"updatedOn\":\"2021-02-08T16:12:28.8035230Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/27f8b550-c507-4db9-86f2-f4b8e816d59d\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"27f8b550-c507-4db9-86f2-f4b8e816d59d\"},{\"properties\":{\"roleName\":\"Disk + Restore Operator\",\"type\":\"BuiltInRole\",\"description\":\"Provides permission + to backup vault to perform disk restore.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Compute/disks/write\",\"Microsoft.Compute/disks/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-12-15T12:18:31.8481619Z\",\"updatedOn\":\"2020-12-18T05:00:53.9562743Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b50d9833-a0cb-478e-945f-707fcc997c13\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b50d9833-a0cb-478e-945f-707fcc997c13\"},{\"properties\":{\"roleName\":\"Disk + Snapshot Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Provides + permission to backup vault to manage disk snapshots.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Compute/snapshots/delete\",\"Microsoft.Compute/snapshots/write\",\"Microsoft.Compute/snapshots/read\",\"Microsoft.Compute/snapshots/beginGetAccess/action\",\"Microsoft.Compute/snapshots/endGetAccess/action\",\"Microsoft.Compute/disks/beginGetAccess/action\",\"Microsoft.Storage/storageAccounts/listkeys/action\",\"Microsoft.Storage/storageAccounts/write\",\"Microsoft.Storage/storageAccounts/read\",\"Microsoft.Storage/storageAccounts/delete\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-12-15T12:18:51.4471411Z\",\"updatedOn\":\"2021-01-06T04:00:07.5681241Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7efff54f-a5b4-42b5-a1c5-5411624893ce\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7efff54f-a5b4-42b5-a1c5-5411624893ce\"},{\"properties\":{\"roleName\":\"Microsoft.Kubernetes + connected cluster role\",\"type\":\"BuiltInRole\",\"description\":\"Microsoft.Kubernetes + connected cluster role.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Kubernetes/connectedClusters/read\",\"Microsoft.Kubernetes/connectedClusters/write\",\"Microsoft.Kubernetes/connectedClusters/delete\",\"Microsoft.Kubernetes/registeredSubscriptions/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2021-01-07T23:57:10.9923232Z\",\"updatedOn\":\"2021-01-07T23:57:10.9923232Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5548b2cf-c94c-4228-90ba-30851930a12f\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5548b2cf-c94c-4228-90ba-30851930a12f\"},{\"properties\":{\"roleName\":\"Security + Detonation Chamber Submission Manager\",\"type\":\"BuiltInRole\",\"description\":\"Allowed + to create and manage submissions to Security Detonation Chamber\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.SecurityDetonation/chambers/submissions/delete\",\"Microsoft.SecurityDetonation/chambers/submissions/write\",\"Microsoft.SecurityDetonation/chambers/submissions/read\",\"Microsoft.SecurityDetonation/chambers/submissions/files/read\",\"Microsoft.SecurityDetonation/chambers/submissions/accesskeyview/read\",\"Microsoft.SecurityDetonation/chambers/submissions/adminview/read\",\"Microsoft.SecurityDetonation/chambers/submissions/analystview/read\",\"Microsoft.SecurityDetonation/chambers/submissions/publicview/read\"],\"notDataActions\":[]}],\"createdOn\":\"2021-01-18T09:35:36.5739297Z\",\"updatedOn\":\"2021-01-24T09:12:30.4145975Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a37b566d-3efa-4beb-a2f2-698963fa42ce\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a37b566d-3efa-4beb-a2f2-698963fa42ce\"},{\"properties\":{\"roleName\":\"Security + Detonation Chamber Publisher\",\"type\":\"BuiltInRole\",\"description\":\"Allowed + to publish and modify platforms, workflows and toolsets to Security Detonation + Chamber\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.SecurityDetonation/chambers/platforms/read\",\"Microsoft.SecurityDetonation/chambers/platforms/write\",\"Microsoft.SecurityDetonation/chambers/platforms/delete\",\"Microsoft.SecurityDetonation/chambers/platforms/metadata/read\",\"Microsoft.SecurityDetonation/chambers/workflows/read\",\"Microsoft.SecurityDetonation/chambers/workflows/write\",\"Microsoft.SecurityDetonation/chambers/workflows/delete\",\"Microsoft.SecurityDetonation/chambers/workflows/metadata/read\",\"Microsoft.SecurityDetonation/chambers/toolsets/read\",\"Microsoft.SecurityDetonation/chambers/toolsets/write\",\"Microsoft.SecurityDetonation/chambers/toolsets/delete\",\"Microsoft.SecurityDetonation/chambers/toolsets/metadata/read\",\"Microsoft.SecurityDetonation/chambers/publishRequests/read\",\"Microsoft.SecurityDetonation/chambers/publishRequests/cancel/action\"],\"notDataActions\":[]}],\"createdOn\":\"2021-01-18T11:43:14.0858184Z\",\"updatedOn\":\"2021-03-07T13:06:15.7172517Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/352470b3-6a9c-4686-b503-35deb827e500\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"352470b3-6a9c-4686-b503-35deb827e500\"},{\"properties\":{\"roleName\":\"Collaborative + Runtime Operator\",\"type\":\"BuiltInRole\",\"description\":\"Can manage resources + created by AICS at runtime\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.IndustryDataLifecycle/derivedModels/*\",\"Microsoft.IndustryDataLifecycle/pipelineSets/*\",\"Microsoft.IndustryDataLifecycle/modelMappings/*\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2021-01-19T10:00:27.3464971Z\",\"updatedOn\":\"2021-04-26T06:26:59.0344457Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7a6f0e70-c033-4fb1-828c-08514e5f4102\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7a6f0e70-c033-4fb1-828c-08514e5f4102\"},{\"properties\":{\"roleName\":\"CosmosRestoreOperator\",\"type\":\"BuiltInRole\",\"description\":\"Can + perform restore action for Cosmos DB database account with continuous backup + mode\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restore/action\",\"Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read\",\"Microsoft.DocumentDB/locations/restorableDatabaseAccounts/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2021-01-21T19:51:35.3884884Z\",\"updatedOn\":\"2021-01-23T01:40:20.9862312Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5432c526-bc82-444a-b7ba-57c5b0b5b34f\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5432c526-bc82-444a-b7ba-57c5b0b5b34f\"},{\"properties\":{\"roleName\":\"FHIR + Data Converter\",\"type\":\"BuiltInRole\",\"description\":\"Role allows user + or principal to convert data from legacy format to FHIR\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.HealthcareApis/services/fhir/resources/convertData/action\"],\"notDataActions\":[]}],\"createdOn\":\"2021-01-22T19:39:01.1601069Z\",\"updatedOn\":\"2021-01-22T19:39:01.1601069Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a1705bd2-3a8f-45a5-8683-466fcfd5cc24\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a1705bd2-3a8f-45a5-8683-466fcfd5cc24\"},{\"properties\":{\"roleName\":\"Azure + Sentinel Automation Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Azure + Sentinel Automation Contributor\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Logic/workflows/triggers/read\",\"Microsoft.Logic/workflows/triggers/listCallbackUrl/action\",\"Microsoft.Logic/workflows/runs/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2021-01-24T08:50:52.0382991Z\",\"updatedOn\":\"2021-01-25T19:48:16.7893833Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/f4c81013-99ee-4d62-a7ee-b3f1f648599a\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"f4c81013-99ee-4d62-a7ee-b3f1f648599a\"},{\"properties\":{\"roleName\":\"Quota + Request Operator\",\"type\":\"BuiltInRole\",\"description\":\"Read and create + quota requests, get quota request status, and create support tickets.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Capacity/resourceProviders/locations/serviceLimits/read\",\"Microsoft.Capacity/resourceProviders/locations/serviceLimits/write\",\"Microsoft.Capacity/resourceProviders/locations/serviceLimitsRequests/read\",\"Microsoft.Capacity/register/action\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2021-02-03T00:06:35.8404575Z\",\"updatedOn\":\"2021-03-22T21:53:11.9852943Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/0e5f05e5-9ab9-446b-b98d-1e2157c94125\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"0e5f05e5-9ab9-446b-b98d-1e2157c94125\"},{\"properties\":{\"roleName\":\"EventGrid + Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Lets you manage EventGrid + operations.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.EventGrid/*\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2021-02-08T18:46:18.8999557Z\",\"updatedOn\":\"2021-02-11T00:02:16.0328078Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/1e241071-0855-49ea-94dc-649edcd759de\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"1e241071-0855-49ea-94dc-649edcd759de\"},{\"properties\":{\"roleName\":\"Security + Detonation Chamber Reader\",\"type\":\"BuiltInRole\",\"description\":\"Allowed + to query submission info and files from Security Detonation Chamber\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.SecurityDetonation/chambers/submissions/read\",\"Microsoft.SecurityDetonation/chambers/submissions/files/read\"],\"notDataActions\":[]}],\"createdOn\":\"2021-03-01T14:06:46.2814905Z\",\"updatedOn\":\"2021-03-01T14:09:25.0080904Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/28241645-39f8-410b-ad48-87863e2951d5\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"28241645-39f8-410b-ad48-87863e2951d5\"},{\"properties\":{\"roleName\":\"Object + Anchors Account Reader\",\"type\":\"BuiltInRole\",\"description\":\"Lets you + read ingestion jobs for an object anchors account.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.MixedReality/ObjectAnchorsAccounts/ingest/read\"],\"notDataActions\":[]}],\"createdOn\":\"2021-03-02T01:20:47.0279813Z\",\"updatedOn\":\"2021-03-02T01:34:08.6743401Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4a167cdf-cb95-4554-9203-2347fe489bd9\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4a167cdf-cb95-4554-9203-2347fe489bd9\"},{\"properties\":{\"roleName\":\"Object + Anchors Account Owner\",\"type\":\"BuiltInRole\",\"description\":\"Provides + user with ingestion capabilities for an object anchors account.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.MixedReality/ObjectAnchorsAccounts/ingest/action\",\"Microsoft.MixedReality/ObjectAnchorsAccounts/ingest/read\"],\"notDataActions\":[]}],\"createdOn\":\"2021-03-02T01:42:02.0014737Z\",\"updatedOn\":\"2021-03-02T01:45:23.2472961Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ca0835dd-bacc-42dd-8ed2-ed5e7230d15b\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ca0835dd-bacc-42dd-8ed2-ed5e7230d15b\"},{\"properties\":{\"roleName\":\"WorkloadBuilder + Migration Agent Role\",\"type\":\"BuiltInRole\",\"description\":\"WorkloadBuilder + Migration Agent Role.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.WorkloadBuilder/migrationAgents/Read\",\"Microsoft.WorkloadBuilder/migrationAgents/Write\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2021-03-11T17:07:20.0828003Z\",\"updatedOn\":\"2021-03-11T17:07:20.0828003Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d17ce0a2-0697-43bc-aac5-9113337ab61c\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"d17ce0a2-0697-43bc-aac5-9113337ab61c\"},{\"properties\":{\"roleName\":\"Web + PubSub Service Owner (Preview)\",\"type\":\"BuiltInRole\",\"description\":\"Full + access to Azure Web PubSub Service REST APIs\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.SignalRService/WebPubSub/clientConnection/read\",\"Microsoft.SignalRService/WebPubSub/clientConnection/send/action\",\"Microsoft.SignalRService/WebPubSub/clientConnection/write\",\"Microsoft.SignalRService/WebPubSub/group/read\",\"Microsoft.SignalRService/WebPubSub/group/send/action\",\"Microsoft.SignalRService/WebPubSub/group/write\",\"Microsoft.SignalRService/WebPubSub/hub/send/action\",\"Microsoft.SignalRService/WebPubSub/user/read\",\"Microsoft.SignalRService/WebPubSub/user/send/action\"],\"notDataActions\":[]}],\"createdOn\":\"2021-03-24T09:10:11.8335180Z\",\"updatedOn\":\"2021-03-24T09:28:41.8434072Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/12cf5a90-567b-43ae-8102-96cf46c7d9b4\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"12cf5a90-567b-43ae-8102-96cf46c7d9b4\"},{\"properties\":{\"roleName\":\"Web + PubSub Service Reader (Preview)\",\"type\":\"BuiltInRole\",\"description\":\"Read-only + access to Azure Web PubSub Service REST APIs\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.SignalRService/WebPubSub/clientConnection/read\",\"Microsoft.SignalRService/WebPubSub/group/read\",\"Microsoft.SignalRService/WebPubSub/user/read\"],\"notDataActions\":[]}],\"createdOn\":\"2021-03-24T09:11:12.6235436Z\",\"updatedOn\":\"2021-03-24T09:30:51.2337584Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/bfb1c7d2-fb1a-466b-b2ba-aee63b92deaf\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"bfb1c7d2-fb1a-466b-b2ba-aee63b92deaf\"},{\"properties\":{\"roleName\":\"Azure + Spring Cloud Data Reader\",\"type\":\"BuiltInRole\",\"description\":\"Allow + read access to Azure Spring Cloud Data\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.AppPlatform/Spring/*/read\"],\"notDataActions\":[]}],\"createdOn\":\"2021-03-25T11:12:12.6786010Z\",\"updatedOn\":\"2021-03-25T11:15:24.6631615Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b5537268-8956-4941-a8f0-646150406f0c\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b5537268-8956-4941-a8f0-646150406f0c\"},{\"properties\":{\"roleName\":\"Cognitive + Services Speech User\",\"type\":\"BuiltInRole\",\"description\":\"This is + a role that can create, read, change and delete batch transcriptions, do real + time transcriptions and list or get other speech resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/SpeechServices/*/read\",\"Microsoft.CognitiveServices/accounts/SpeechServices/*/transcriptions/write\",\"Microsoft.CognitiveServices/accounts/SpeechServices/*/transcriptions/delete\",\"Microsoft.CognitiveServices/accounts/SpeechServices/*/transcriptions/read\",\"Microsoft.CognitiveServices/accounts/SpeechServices/*/frontend/action\"],\"notDataActions\":[]}],\"createdOn\":\"2021-03-30T11:28:27.4339032Z\",\"updatedOn\":\"2021-03-30T11:28:27.4339032Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/f2dc8367-1007-4938-bd23-fe263f013447\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"f2dc8367-1007-4938-bd23-fe263f013447\"},{\"properties\":{\"roleName\":\"Cognitive + Services Speech Contributor\",\"type\":\"BuiltInRole\",\"description\":\"This + is a role that can read, write and delete all speech resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/SpeechServices/*\"],\"notDataActions\":[]}],\"createdOn\":\"2021-03-30T11:28:49.7826633Z\",\"updatedOn\":\"2021-03-30T11:28:49.7826633Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/0e75ca1e-0464-4b4d-8b93-68208a576181\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"0e75ca1e-0464-4b4d-8b93-68208a576181\"},{\"properties\":{\"roleName\":\"Cognitive + Services Face Recognizer\",\"type\":\"BuiltInRole\",\"description\":\"Lets + you perform detect, verify, identify, group, and find similar operations on + Face API. This role does not allow create or delete operations, which makes + it well suited for endpoints that only need inferencing capabilities, following + 'least privilege' best practices.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/Face/detect/action\",\"Microsoft.CognitiveServices/accounts/Face/verify/action\",\"Microsoft.CognitiveServices/accounts/Face/identify/action\",\"Microsoft.CognitiveServices/accounts/Face/group/action\",\"Microsoft.CognitiveServices/accounts/Face/findsimilars/action\"],\"notDataActions\":[]}],\"createdOn\":\"2021-03-31T01:51:41.3557295Z\",\"updatedOn\":\"2021-03-31T01:51:41.3557295Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9894cab4-e18a-44aa-828b-cb588cd6f2d7\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"9894cab4-e18a-44aa-828b-cb588cd6f2d7\"},{\"properties\":{\"roleName\":\"Media + Services Account Administrator\",\"type\":\"BuiltInRole\",\"description\":\"Create, + read, modify and delete Media Services accounts; read-only access to other + Media Services resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/metrics/read\",\"Microsoft.Insights/metricDefinitions/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Media/mediaservices/*/read\",\"Microsoft.Media/mediaservices/assets/listStreamingLocators/action\",\"Microsoft.Media/mediaservices/streamingLocators/listPaths/action\",\"Microsoft.Media/mediaservices/write\",\"Microsoft.Media/mediaservices/delete\",\"Microsoft.Media/mediaservices/privateEndpointConnectionsApproval/action\",\"Microsoft.Media/mediaservices/privateEndpointConnections/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2021-04-19T23:20:32.2956636Z\",\"updatedOn\":\"2021-05-01T01:01:47.9462317Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/054126f8-9a2b-4f1c-a9ad-eca461f08466\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"054126f8-9a2b-4f1c-a9ad-eca461f08466\"},{\"properties\":{\"roleName\":\"Media + Services Live Events Administrator\",\"type\":\"BuiltInRole\",\"description\":\"Create, + read and modify Live Events, Assets, Asset Filters and Streaming Locators; + read-only access to other Media Services resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/metrics/read\",\"Microsoft.Insights/metricDefinitions/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Media/mediaservices/*/read\",\"Microsoft.Media/mediaservices/assets/*\",\"Microsoft.Media/mediaservices/assets/assetfilters/*\",\"Microsoft.Media/mediaservices/streamingLocators/*\",\"Microsoft.Media/mediaservices/liveEvents/*\"],\"notActions\":[\"Microsoft.Media/mediaservices/assets/getEncryptionKey/action\",\"Microsoft.Media/mediaservices/streamingLocators/listContentKeys/action\"],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2021-04-19T23:21:00.6119555Z\",\"updatedOn\":\"2021-05-06T16:15:06.2586303Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/532bc159-b25e-42c0-969e-a1d439f60d77\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"532bc159-b25e-42c0-969e-a1d439f60d77\"},{\"properties\":{\"roleName\":\"Media + Services Media Operator\",\"type\":\"BuiltInRole\",\"description\":\"Create, + read, modify, and delete of Assets, Asset Filters, Streaming Locators and + Jobs; read-only access to other Media Services resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/metrics/read\",\"Microsoft.Insights/metricDefinitions/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Media/mediaservices/*/read\",\"Microsoft.Media/mediaservices/assets/*\",\"Microsoft.Media/mediaservices/assets/assetfilters/*\",\"Microsoft.Media/mediaservices/streamingLocators/*\",\"Microsoft.Media/mediaservices/transforms/jobs/*\"],\"notActions\":[\"Microsoft.Media/mediaservices/assets/getEncryptionKey/action\",\"Microsoft.Media/mediaservices/streamingLocators/listContentKeys/action\"],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2021-04-19T23:21:23.2236495Z\",\"updatedOn\":\"2021-05-06T16:14:37.5549657Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e4395492-1534-4db2-bedf-88c14621589c\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e4395492-1534-4db2-bedf-88c14621589c\"},{\"properties\":{\"roleName\":\"Media + Services Policy Administrator\",\"type\":\"BuiltInRole\",\"description\":\"Create, + read, modify, and delete Account Filters, Streaming Policies, Content Key + Policies and Transforms; read-only access to other Media Services resources. + Cannot create Jobs, Assets or Streaming resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/metrics/read\",\"Microsoft.Insights/metricDefinitions/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Media/mediaservices/*/read\",\"Microsoft.Media/mediaservices/assets/listStreamingLocators/action\",\"Microsoft.Media/mediaservices/streamingLocators/listPaths/action\",\"Microsoft.Media/mediaservices/accountFilters/*\",\"Microsoft.Media/mediaservices/streamingPolicies/*\",\"Microsoft.Media/mediaservices/contentKeyPolicies/*\",\"Microsoft.Media/mediaservices/transforms/*\"],\"notActions\":[\"Microsoft.Media/mediaservices/contentKeyPolicies/getPolicyPropertiesWithSecrets/action\"],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2021-04-19T23:21:46.9534330Z\",\"updatedOn\":\"2021-05-06T16:14:16.7746802Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c4bba371-dacd-4a26-b320-7250bca963ae\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c4bba371-dacd-4a26-b320-7250bca963ae\"},{\"properties\":{\"roleName\":\"Media + Services Streaming Endpoints Administrator\",\"type\":\"BuiltInRole\",\"description\":\"Create, + read, modify and delete Streaming Endpoints; read-only access to other Media + Services resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/metrics/read\",\"Microsoft.Insights/metricDefinitions/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Media/mediaservices/*/read\",\"Microsoft.Media/mediaservices/assets/listStreamingLocators/action\",\"Microsoft.Media/mediaservices/streamingLocators/listPaths/action\",\"Microsoft.Media/mediaservices/streamingEndpoints/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2021-04-19T23:22:04.4594851Z\",\"updatedOn\":\"2021-05-06T16:13:45.1356018Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/99dba123-b5fe-44d5-874c-ced7199a5804\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"99dba123-b5fe-44d5-874c-ced7199a5804\"},{\"properties\":{\"roleName\":\"Stream + Analytics Query Tester\",\"type\":\"BuiltInRole\",\"description\":\"Lets you + perform query testing without creating a stream analytics job first\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.StreamAnalytics/locations/TestQuery/action\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2021-04-20T17:33:24.5727870Z\",\"updatedOn\":\"2021-04-26T17:08:16.3575666Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/1ec5b3c1-b17e-4e25-8312-2acb3c3c5abf\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"1ec5b3c1-b17e-4e25-8312-2acb3c3c5abf\"},{\"properties\":{\"roleName\":\"AnyBuild + Builder\",\"type\":\"BuiltInRole\",\"description\":\"Basic user role for AnyBuild. + This role allows listing of agent information and execution of remote build + capabilities.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.AnyBuild/clusters/build/write\",\"Microsoft.AnyBuild/clusters/build/read\"],\"notDataActions\":[]}],\"createdOn\":\"2021-04-20T22:07:00.4963853Z\",\"updatedOn\":\"2021-04-20T22:07:00.4963853Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a2138dac-4907-4679-a376-736901ed8ad8\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a2138dac-4907-4679-a376-736901ed8ad8\"},{\"properties\":{\"roleName\":\"IoT + Hub Data Reader\",\"type\":\"BuiltInRole\",\"description\":\"Allows for full + read access to IoT Hub data-plane properties\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.Devices/IotHubs/*/read\",\"Microsoft.Devices/IotHubs/fileUpload/notifications/action\"],\"notDataActions\":[]}],\"createdOn\":\"2021-04-22T18:03:29.8843192Z\",\"updatedOn\":\"2021-04-29T23:24:12.4930691Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b447c946-2db7-41ec-983d-d8bf3b1c77e3\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b447c946-2db7-41ec-983d-d8bf3b1c77e3\"},{\"properties\":{\"roleName\":\"IoT + Hub Twin Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Allows for + read and write access to all IoT Hub device and module twins.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.Devices/IotHubs/twins/*\"],\"notDataActions\":[]}],\"createdOn\":\"2021-04-22T20:36:10.1136903Z\",\"updatedOn\":\"2021-04-29T23:52:03.1511375Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/494bdba2-168f-4f31-a0a1-191d2f7c028c\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"494bdba2-168f-4f31-a0a1-191d2f7c028c\"},{\"properties\":{\"roleName\":\"IoT + Hub Registry Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Allows + for full access to IoT Hub device registry.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.Devices/IotHubs/devices/*\"],\"notDataActions\":[]}],\"createdOn\":\"2021-04-22T20:36:47.5532704Z\",\"updatedOn\":\"2021-04-30T00:01:58.8405124Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4ea46cd5-c1b2-4a8e-910b-273211f9ce47\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4ea46cd5-c1b2-4a8e-910b-273211f9ce47\"},{\"properties\":{\"roleName\":\"IoT + Hub Data Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Allows for + full access to IoT Hub data plane operations.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.Devices/IotHubs/*\"],\"notDataActions\":[]}],\"createdOn\":\"2021-04-22T20:37:16.9927761Z\",\"updatedOn\":\"2021-04-29T23:44:42.6824802Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4fc6c259-987e-4a07-842e-c321cc9d413f\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4fc6c259-987e-4a07-842e-c321cc9d413f\"},{\"properties\":{\"roleName\":\"Test + Base Reader\",\"type\":\"BuiltInRole\",\"description\":\"Let you view and + download packages and test results.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.TestBase/testBaseAccounts/packages/testResults/getDownloadUrl/action\",\"Microsoft.TestBase/testBaseAccounts/packages/testResults/getVideoDownloadUrl/action\",\"Microsoft.TestBase/testBaseAccounts/packages/getDownloadUrl/action\",\"Microsoft.TestBase/*/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2021-05-11T23:41:33.1038367Z\",\"updatedOn\":\"2021-05-11T23:41:33.1038367Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/15e0f5a1-3450-4248-8e25-e2afe88a9e85\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"15e0f5a1-3450-4248-8e25-e2afe88a9e85\"}]}" headers: cache-control: - no-cache content-length: - - '838' + - '291759' content-type: - application/json; charset=utf-8 date: - - Mon, 21 Dec 2020 10:09:14 GMT - etag: - - '"0200b9ea-0000-3400-0000-5fe0743d0000"' + - Thu, 13 May 2021 13:06:38 GMT expires: - '-1' pragma: - no-cache - server: - - Kestrel + set-cookie: + - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -305,44 +1157,171 @@ interactions: code: 200 message: OK - request: - body: null + body: '{"objectIds": ["e529c1e5-76ca-44a1-9176-61e364c62876"], "includeDirectoryObjectReferences": + true}' headers: Accept: - application/json Accept-Encoding: - gzip, deflate CommandName: - - confluent organization show + - confluent organization create Connection: - keep-alive + Content-Length: + - '97' + Content-Type: + - application/json; charset=utf-8 ParameterSetName: - - --name --resource-group + - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags + --name --resource-group User-Agent: - - AZURECLI/2.16.0 azsdk-python-confluentmanagementclient/unknown Python/3.6.9 - (Linux-5.4.0-1031-azure-x86_64-with-Ubuntu-18.04-bionic) + - python/3.8.8 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 + azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.23.0 (MSI) + 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.User","objectType":"User","objectId":"e529c1e5-76ca-44a1-9176-61e364c62876","deletionTimestamp":null,"accountEnabled":true,"ageGroup":null,"assignedLicenses":[],"assignedPlans":[],"city":null,"companyName":null,"consentProvidedForMinor":null,"country":null,"createdDateTime":"2021-05-13T09:09:32Z","creationType":"Invitation","department":null,"dirSyncEnabled":null,"displayName":"Feng + Zhou","employeeId":null,"facsimileTelephoneNumber":null,"givenName":null,"immutableId":null,"isCompromised":null,"jobTitle":null,"lastDirSyncTime":null,"legalAgeGroupClassification":null,"mail":"feng.zhou@microsoft.com","mailNickname":"feng.zhou_microsoft.com#EXT#","mobile":null,"onPremisesDistinguishedName":null,"onPremisesSecurityIdentifier":null,"otherMails":["fenzhou@microsoft.com","feng.zhou@microsoft.com"],"passwordPolicies":null,"passwordProfile":null,"physicalDeliveryOfficeName":null,"postalCode":null,"preferredLanguage":null,"provisionedPlans":[],"provisioningErrors":[],"proxyAddresses":["SMTP:feng.zhou@microsoft.com"],"refreshTokensValidFromDateTime":"2021-05-13T09:09:32Z","showInAddressList":false,"signInNames":[],"sipProxyAddress":null,"state":null,"streetAddress":null,"surname":null,"telephoneNumber":null,"thumbnailPhoto@odata.mediaEditLink":"directoryObjects/e529c1e5-76ca-44a1-9176-61e364c62876/Microsoft.DirectoryServices.User/thumbnailPhoto","usageLocation":null,"userIdentities":[],"userPrincipalName":"feng.zhou_microsoft.com#EXT#@mpliftrconfluent20210809out.onmicrosoft.com","userState":"Accepted","userStateChangedOn":"2021-05-13T09:12:14Z","userType":"Guest"}]}' + headers: + access-control-allow-origin: + - '*' + cache-control: + - no-cache + content-length: + - '1743' + content-type: + - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 + dataserviceversion: + - 3.0; + date: + - Thu, 13 May 2021 13:06:39 GMT + duration: + - '1768210' + expires: + - '-1' + ocp-aad-diagnostics-server-name: + - XqLvwZUsYdFLData9GsvHwj3yekKou7GfPJtn4ccDYo= + ocp-aad-session-key: + - Ht3pinbDBb25ybHEmZF5o_id0y3c46xMtNA3gLiQC-6ZlEv4ZyKwWjqRpw8BvXcdWm1TiH_uzYuP9N0jNpA6jq2Mze2DoSROZG7NjC2BK0Z3zN_zOR4UPH2ovuvXob3n.reeFccaRCxgQn0XF9iYvU5RVhUaX2acCWPHzWkYkTqo + pragma: + - no-cache + request-id: + - c90b0970-ab00-4407-a17f-bdccf534debe + 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 +- request: + body: '{"tags": {"environment": "Dev"}, "location": "eastus2euap", "properties": + {"offerDetail": {"publisherId": "confluentinc", "id": "confluent-cloud-azure-stag", + "planId": "confluent-cloud-azure-payg-stag", "planName": "Confluent Cloud - + Pay as you Go", "termUnit": "P1M"}, "userDetail": {"firstName": "Feng", "lastName": + "Zhou", "emailAddress": "feng.zhou@microsoft.com"}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - confluent organization create + Connection: + - keep-alive + Content-Length: + - '370' + Content-Type: + - application/json + ParameterSetName: + - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags + --name --resource-group + User-Agent: + - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-13T13:06:44.2048077Z","provisioningState":"Accepted","organizationId":null,"ssoUrl":null,"offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Feng","lastName":"Zhou","emailAddress":"feng.zhou@microsoft.com"}}}' + headers: + azure-asyncoperation: + - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/12881a63-b672-44a1-96bb-8acc7470931e?api-version=2020-03-01-preview + cache-control: + - no-cache + content-length: + - '746' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 13 May 2021 13:06:46 GMT + etag: + - '"0e009f0a-0000-3400-0000-609d24650000"' + expires: + - '-1' + location: + - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/12881a63-b672-44a1-96bb-8acc7470931e?api-version=2020-03-01-preview + pragma: + - no-cache + request-context: + - appId=cid-v1:44fd1f8b-df35-48c9-8fa6-f5e19b8bb5be + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-providerhub-traffic: + - 'True' + x-ms-ratelimit-remaining-subscription-writes: + - '1196' + status: + code: 201 + message: Created +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - confluent organization create + Connection: + - keep-alive + ParameterSetName: + - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags + --name --resource-group + User-Agent: + - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization?api-version=2020-03-01-preview + uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/12881a63-b672-44a1-96bb-8acc7470931e?api-version=2020-03-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization","name":"myOrganization","type":"Microsoft.Confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2020-12-21T10:08:10.4539598Z","provisioningState":"Succeeded","organizationId":"bbf3801b-f454-4916-9cde-05b7c7d46765","ssoUrl":"https://stag.cpdev.cloud/login/sso/azure-ad-oidc","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent - Cloud - Pay as you Go","termUnit":"P1M","status":"Subscribed"},"userDetail":{"firstName":"contoso","lastName":"zhou","emailAddress":"contoso@microsoft.com"}}}' + string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/12881a63-b672-44a1-96bb-8acc7470931e","name":"12881a63-b672-44a1-96bb-8acc7470931e","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","status":"Succeeded","startTime":"2021-05-13T13:06:44.1311974Z","endTime":"2021-05-13T13:07:15.0545277Z","error":{},"properties":null}' headers: cache-control: - no-cache content-length: - - '838' + - '509' content-type: - application/json; charset=utf-8 date: - - Mon, 21 Dec 2020 10:09:15 GMT + - Thu, 13 May 2021 13:07:16 GMT etag: - - '"0200b9ea-0000-3400-0000-5fe0743d0000"' + - '"0200282a-0000-3400-0000-609d24830000"' expires: - '-1' pragma: - no-cache - server: - - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -358,24 +1337,24 @@ interactions: body: null headers: Accept: - - application/json + - '*/*' Accept-Encoding: - gzip, deflate CommandName: - - confluent organization list + - confluent organization create Connection: - keep-alive ParameterSetName: - - --resource-group + - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags + --name --resource-group User-Agent: - - AZURECLI/2.16.0 azsdk-python-confluentmanagementclient/unknown Python/3.6.9 - (Linux-5.4.0-1031-azure-x86_64-with-Ubuntu-18.04-bionic) + - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations?api-version=2020-03-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization","name":"myOrganization","type":"Microsoft.Confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2020-12-21T10:08:10.4539598Z","provisioningState":"Succeeded","organizationId":"bbf3801b-f454-4916-9cde-05b7c7d46765","ssoUrl":"https://stag.cpdev.cloud/login/sso/azure-ad-oidc","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent - Cloud - Pay as you Go","termUnit":"P1M","status":"Subscribed"},"userDetail":{"firstName":"contoso","lastName":"zhou","emailAddress":"contoso@microsoft.com"}}}]}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-13T13:06:44.2048077Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Feng","lastName":"Zhou","emailAddress":"feng.zhou@microsoft.com"},"organizationId":"8994071a-6089-45ca-99bf-a6ae5ed0c12a","ssoUrl":"https://stag.cpdev.cloud/login/sso/8994071a-6089-45ca-99bf-a6ae5ed0c12a"}}' headers: cache-control: - no-cache @@ -384,13 +1363,13 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 21 Dec 2020 10:09:15 GMT + - Thu, 13 May 2021 13:07:16 GMT + etag: + - '"0e00a50a-0000-3400-0000-609d24830000"' expires: - '-1' pragma: - no-cache - server: - - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -399,6 +1378,8 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff + x-ms-providerhub-traffic: + - 'True' status: code: 200 message: OK @@ -410,20 +1391,19 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - confluent organization list + - confluent organization wait Connection: - keep-alive ParameterSetName: - - --resource-group + - --created --name --resource-group User-Agent: - - AZURECLI/2.16.0 azsdk-python-confluentmanagementclient/unknown Python/3.6.9 - (Linux-5.4.0-1031-azure-x86_64-with-Ubuntu-18.04-bionic) + - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations?api-version=2020-03-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization","name":"myOrganization","type":"Microsoft.Confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2020-12-21T10:08:10.4539598Z","provisioningState":"Succeeded","organizationId":"bbf3801b-f454-4916-9cde-05b7c7d46765","ssoUrl":"https://stag.cpdev.cloud/login/sso/azure-ad-oidc","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent - Cloud - Pay as you Go","termUnit":"P1M","status":"Subscribed"},"userDetail":{"firstName":"contoso","lastName":"zhou","emailAddress":"contoso@microsoft.com"}}}]}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-13T13:06:44.2048077Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Feng","lastName":"Zhou","emailAddress":"feng.zhou@microsoft.com"},"organizationId":"8994071a-6089-45ca-99bf-a6ae5ed0c12a","ssoUrl":"https://stag.cpdev.cloud/login/sso/8994071a-6089-45ca-99bf-a6ae5ed0c12a"}}' headers: cache-control: - no-cache @@ -432,13 +1412,13 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Mon, 21 Dec 2020 10:09:16 GMT + - Thu, 13 May 2021 13:07:19 GMT + etag: + - '"0e00a50a-0000-3400-0000-609d24830000"' expires: - '-1' pragma: - no-cache - server: - - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -447,52 +1427,47 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff + x-ms-providerhub-traffic: + - 'True' status: code: 200 message: OK - request: - body: '{"tags": {"client": "dev-client", "env": "dev"}}' + body: null headers: Accept: - application/json Accept-Encoding: - gzip, deflate CommandName: - - confluent organization update + - confluent organization show Connection: - keep-alive - Content-Length: - - '48' - Content-Type: - - application/json ParameterSetName: - - --tags --name --resource-group + - --name --resource-group User-Agent: - - AZURECLI/2.16.0 azsdk-python-confluentmanagementclient/unknown Python/3.6.9 - (Linux-5.4.0-1031-azure-x86_64-with-Ubuntu-18.04-bionic) - method: PATCH - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization?api-version=2020-03-01-preview + - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization","name":"myOrganization","type":"Microsoft.Confluent/organizations","location":"eastus2euap","tags":{"client":"dev-client","env":"dev"},"properties":{"createdTime":"2020-12-21T10:08:10.4539598Z","provisioningState":"Succeeded","organizationId":"bbf3801b-f454-4916-9cde-05b7c7d46765","ssoUrl":"https://stag.cpdev.cloud/login/sso/azure-ad-oidc","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent - Cloud - Pay as you Go","termUnit":"P1M","status":"Subscribed"},"userDetail":{"firstName":"contoso","lastName":"zhou","emailAddress":"contoso@microsoft.com"}}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-13T13:06:44.2048077Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Feng","lastName":"Zhou","emailAddress":"feng.zhou@microsoft.com"},"organizationId":"8994071a-6089-45ca-99bf-a6ae5ed0c12a","ssoUrl":"https://stag.cpdev.cloud/login/sso/8994071a-6089-45ca-99bf-a6ae5ed0c12a"}}' headers: cache-control: - no-cache content-length: - - '852' + - '850' content-type: - application/json; charset=utf-8 date: - - Mon, 21 Dec 2020 10:09:19 GMT + - Thu, 13 May 2021 13:07:20 GMT etag: - - '"0200d4ea-0000-3400-0000-5fe0744e0000"' + - '"0e00a50a-0000-3400-0000-609d24830000"' expires: - '-1' pragma: - no-cache - server: - - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -501,8 +1476,8 @@ interactions: - Accept-Encoding x-content-type-options: - nosniff - x-ms-ratelimit-remaining-subscription-writes: - - '1199' + x-ms-providerhub-traffic: + - 'True' status: code: 200 message: OK @@ -514,138 +1489,198 @@ interactions: Accept-Encoding: - gzip, deflate CommandName: - - confluent organization delete + - confluent organization list Connection: - keep-alive - Content-Length: - - '0' ParameterSetName: - - -y --name --resource-group + - --resource-group User-Agent: - - AZURECLI/2.16.0 azsdk-python-confluentmanagementclient/unknown Python/3.6.9 - (Linux-5.4.0-1031-azure-x86_64-with-Ubuntu-18.04-bionic) - method: DELETE - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization?api-version=2020-03-01-preview + - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations?api-version=2020-03-01-preview response: body: - string: 'null' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-13T13:06:44.2048077Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Feng","lastName":"Zhou","emailAddress":"feng.zhou@microsoft.com"},"organizationId":"8994071a-6089-45ca-99bf-a6ae5ed0c12a","ssoUrl":"https://stag.cpdev.cloud/login/sso/8994071a-6089-45ca-99bf-a6ae5ed0c12a"}}]}' headers: cache-control: - no-cache content-length: - - '4' + - '862' content-type: - application/json; charset=utf-8 date: - - Mon, 21 Dec 2020 10:09:22 GMT - etag: - - '"0200daea-0000-3400-0000-5fe074520000"' + - Thu, 13 May 2021 13:07:22 GMT expires: - '-1' - location: - - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/77b5d9f4-b7f9-4e57-ab12-5cba36987e79?api-version=2020-03-01-preview pragma: - no-cache - request-context: - - appId=cid-v1:44fd1f8b-df35-48c9-8fa6-f5e19b8bb5be - 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: - - '14998' + x-ms-providerhub-traffic: + - 'True' status: - code: 202 - message: Accepted + code: 200 + message: OK - request: body: null headers: Accept: - - '*/*' + - application/json Accept-Encoding: - gzip, deflate CommandName: - - confluent organization delete + - confluent organization list Connection: - keep-alive ParameterSetName: - - -y --name --resource-group + - -g User-Agent: - - AZURECLI/2.16.0 azsdk-python-confluentmanagementclient/unknown Python/3.6.9 - (Linux-5.4.0-1031-azure-x86_64-with-Ubuntu-18.04-bionic) + - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/77b5d9f4-b7f9-4e57-ab12-5cba36987e79?api-version=2020-03-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Confluent/organizations?api-version=2020-03-01-preview response: body: - string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/77b5d9f4-b7f9-4e57-ab12-5cba36987e79","name":"77b5d9f4-b7f9-4e57-ab12-5cba36987e79","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization","status":"Deleting","startTime":"2020-12-21T10:09:21.7821353Z"}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rohit-test/providers/Microsoft.Confluent/organizations/EmailExists-Test","name":"EmailExists-Test","type":"microsoft.confluent/organizations","location":"westcentralus","tags":{},"properties":{"createdTime":"2021-05-07T09:30:31.6227005Z","provisioningState":"Failed","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-prod","planId":"confluent-cloud-azure-payg-prod","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Failed"},"userDetail":{"firstName":"Liftr","lastName":"Confluent","emailAddress":"mp_liftrconfluent_20210809@outlook.com"}}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rohit-test/providers/Microsoft.Confluent/organizations/saas-cleanup-test-1","name":"saas-cleanup-test-1","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{},"properties":{"createdTime":"2021-05-12T06:45:05.0325812Z","provisioningState":"Failed","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Failed"},"userDetail":{"firstName":"Rohit","lastName":"Anand","emailAddress":"rohanand@microsoft.com"}}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rohit-test/providers/Microsoft.Confluent/organizations/saas-cleanup-happy","name":"saas-cleanup-happy","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{},"properties":{"createdTime":"2021-05-12T08:06:17.2917712Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Rohit","lastName":"Anand","emailAddress":"rohanand@microsoft.com"},"organizationId":"b1ddb93a-aace-4813-8051-19eef4662fc6","ssoUrl":"https://stag.cpdev.cloud/login/sso/b1ddb93a-aace-4813-8051-19eef4662fc6"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-13T13:06:44.2048077Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Feng","lastName":"Zhou","emailAddress":"feng.zhou@microsoft.com"},"organizationId":"8994071a-6089-45ca-99bf-a6ae5ed0c12a","ssoUrl":"https://stag.cpdev.cloud/login/sso/8994071a-6089-45ca-99bf-a6ae5ed0c12a"}}]}' headers: cache-control: - no-cache content-length: - - '442' + - '2948' content-type: - application/json; charset=utf-8 date: - - Mon, 21 Dec 2020 10:09:53 GMT + - Thu, 13 May 2021 13:07:24 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: + - 140e7aee-ff38-4ef6-87c7-96a397c92bae + - ba79c132-4c3d-4882-9bb5-f2e8109f1233 + status: + code: 200 + message: OK +- request: + body: '{"tags": {"client": "dev-client", "env": "dev"}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - confluent organization update + Connection: + - keep-alive + Content-Length: + - '48' + Content-Type: + - application/json + ParameterSetName: + - --tags --name --resource-group + User-Agent: + - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) + method: PATCH + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"client":"dev-client","env":"dev"},"properties":{"createdTime":"2021-05-13T13:06:44.2048077Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Feng","lastName":"Zhou","emailAddress":"feng.zhou@microsoft.com"},"organizationId":"8994071a-6089-45ca-99bf-a6ae5ed0c12a","ssoUrl":"https://stag.cpdev.cloud/login/sso/8994071a-6089-45ca-99bf-a6ae5ed0c12a"}}' + headers: + cache-control: + - no-cache + content-length: + - '864' + content-type: + - application/json; charset=utf-8 + date: + - Thu, 13 May 2021 13:07:28 GMT etag: - - '"00002329-0000-3400-0000-5fe074510000"' + - '"0e00a60a-0000-3400-0000-609d248e0000"' 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-providerhub-traffic: + - 'True' + x-ms-ratelimit-remaining-subscription-writes: + - '1198' status: - code: 202 - message: Accepted + code: 200 + message: OK - request: body: null headers: Accept: - - '*/*' + - application/json Accept-Encoding: - gzip, deflate CommandName: - confluent organization delete Connection: - keep-alive + Content-Length: + - '0' ParameterSetName: - -y --name --resource-group User-Agent: - - AZURECLI/2.16.0 azsdk-python-confluentmanagementclient/unknown Python/3.6.9 - (Linux-5.4.0-1031-azure-x86_64-with-Ubuntu-18.04-bionic) - method: GET - uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/77b5d9f4-b7f9-4e57-ab12-5cba36987e79?api-version=2020-03-01-preview + - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) + method: DELETE + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview response: body: - string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/77b5d9f4-b7f9-4e57-ab12-5cba36987e79","name":"77b5d9f4-b7f9-4e57-ab12-5cba36987e79","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization","status":"Deleting","startTime":"2020-12-21T10:09:21.7821353Z"}' + string: 'null' headers: cache-control: - no-cache content-length: - - '442' + - '4' content-type: - application/json; charset=utf-8 date: - - Mon, 21 Dec 2020 10:10:23 GMT + - Thu, 13 May 2021 13:07:30 GMT etag: - - '"00002329-0000-3400-0000-5fe074510000"' + - '"0e00a70a-0000-3400-0000-609d24920000"' expires: - '-1' + location: + - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/bdd6786d-b73d-49a2-8edf-30a28b84de44?api-version=2020-03-01-preview pragma: - no-cache - server: - - Kestrel + request-context: + - appId=cid-v1:44fd1f8b-df35-48c9-8fa6-f5e19b8bb5be strict-transport-security: - max-age=31536000; includeSubDomains x-content-type-options: - nosniff + x-ms-providerhub-traffic: + - 'True' + x-ms-ratelimit-remaining-subscription-deletes: + - '14998' status: code: 202 message: Accepted @@ -663,30 +1698,27 @@ interactions: ParameterSetName: - -y --name --resource-group User-Agent: - - AZURECLI/2.16.0 azsdk-python-confluentmanagementclient/unknown Python/3.6.9 - (Linux-5.4.0-1031-azure-x86_64-with-Ubuntu-18.04-bionic) + - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/77b5d9f4-b7f9-4e57-ab12-5cba36987e79?api-version=2020-03-01-preview + uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/bdd6786d-b73d-49a2-8edf-30a28b84de44?api-version=2020-03-01-preview response: body: - string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/77b5d9f4-b7f9-4e57-ab12-5cba36987e79","name":"77b5d9f4-b7f9-4e57-ab12-5cba36987e79","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/myOrganization","status":"Succeeded","startTime":"2020-12-21T10:09:21.7821353Z","endTime":"2020-12-21T10:10:46.6344945Z","error":{},"properties":null}' + string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/bdd6786d-b73d-49a2-8edf-30a28b84de44","name":"bdd6786d-b73d-49a2-8edf-30a28b84de44","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","status":"Succeeded","startTime":"2021-05-13T13:07:30.3536496Z","endTime":"2021-05-13T13:07:42.0055398Z","error":{},"properties":null}' headers: cache-control: - no-cache content-length: - - '513' + - '509' content-type: - application/json; charset=utf-8 date: - - Mon, 21 Dec 2020 10:10:53 GMT + - Thu, 13 May 2021 13:08:00 GMT etag: - - '"00002429-0000-3400-0000-5fe074a60000"' + - '"02002d2a-0000-3400-0000-609d249e0000"' expires: - '-1' pragma: - no-cache - server: - - Kestrel strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: diff --git a/src/confluent/azext_confluent/tests/latest/test_confluent_scenario.py b/src/confluent/azext_confluent/tests/latest/test_confluent_scenario.py index 41a89b24055..b7daf10b821 100644 --- a/src/confluent/azext_confluent/tests/latest/test_confluent_scenario.py +++ b/src/confluent/azext_confluent/tests/latest/test_confluent_scenario.py @@ -15,9 +15,10 @@ from .example_steps import step_organization_create from .example_steps import step_organization_show from .example_steps import step_organization_list -from .example_steps import step_organization_list +from .example_steps import step_organization_list2 from .example_steps import step_organization_update from .example_steps import step_organization_delete +from azure_devtools.scenario_tests import AllowLargeResponse from .. import ( try_manual, raise_if, @@ -28,6 +29,15 @@ TEST_DIR = os.path.abspath(os.path.join(os.path.abspath(__file__), '..')) +def step_offer_detail_show(test, rg, checks=None): + if checks is None: + checks = [] + test.cmd('az confluent offer-detail show ' + '--publisher-id confluentinc ' + '--offer-id confluent-cloud-azure-stag', + checks=checks) + + # Env setup_scenario @try_manual def setup_scenario(test, rg): @@ -47,18 +57,21 @@ def call_scenario(test, rg): step_terms_list(test, rg, checks=[ test.greater_than('length(@)', 1) ]) + step_offer_detail_show(test, rg, checks=[ + test.greater_than('length(@)', 0) + ]) step_organization_create(test, rg, checks=[ test.check("location", "eastus2euap", case_sensitive=False), - test.check("userDetail.emailAddress", "contoso@microsoft.com", case_sensitive=False), - test.check("userDetail.firstName", "contoso", case_sensitive=False), + test.check("userDetail.emailAddress", "feng.zhou@microsoft.com", case_sensitive=False), + test.check("userDetail.firstName", "feng", case_sensitive=False), test.check("userDetail.lastName", "zhou", case_sensitive=False), test.check("tags.environment", "Dev", case_sensitive=False), test.check("name", "{myOrganization}", case_sensitive=False), ]) step_organization_show(test, rg, checks=[ test.check("location", "eastus2euap", case_sensitive=False), - test.check("userDetail.emailAddress", "contoso@microsoft.com", case_sensitive=False), - test.check("userDetail.firstName", "contoso", case_sensitive=False), + test.check("userDetail.emailAddress", "feng.zhou@microsoft.com", case_sensitive=False), + test.check("userDetail.firstName", "feng", case_sensitive=False), test.check("userDetail.lastName", "zhou", case_sensitive=False), test.check("tags.environment", "Dev", case_sensitive=False), test.check("name", "{myOrganization}", case_sensitive=False), @@ -66,13 +79,13 @@ def call_scenario(test, rg): step_organization_list(test, rg, checks=[ test.greater_than('length(@)', 0), ]) - step_organization_list(test, "", checks=[ + step_organization_list2(test, "", checks=[ test.greater_than('length(@)', 0), ]) step_organization_update(test, rg, checks=[ test.check("location", "eastus2euap", case_sensitive=False), - test.check("userDetail.emailAddress", "contoso@microsoft.com", case_sensitive=False), - test.check("userDetail.firstName", "contoso", case_sensitive=False), + test.check("userDetail.emailAddress", "feng.zhou@microsoft.com", case_sensitive=False), + test.check("userDetail.firstName", "feng", case_sensitive=False), test.check("userDetail.lastName", "zhou", case_sensitive=False), test.check("name", "{myOrganization}", case_sensitive=False), test.check("tags.client", "dev-client", case_sensitive=False), @@ -85,13 +98,15 @@ def call_scenario(test, rg): @try_manual class ConfluentScenarioTest(ScenarioTest): - @ResourceGroupPreparer(name_prefix='clitestconfluent_myResourceGroup'[:7], key='rg', parameter_name='rg') - def test_confluent_Scenario(self, rg): - + def __init__(self, *args, **kwargs): + super(ConfluentScenarioTest, self).__init__(*args, **kwargs) self.kwargs.update({ - 'myOrganization': 'myOrganization', + 'myOrganization': 'cliTestOrg', }) + @ResourceGroupPreparer(name_prefix='clitestconfluent_myResourceGroup'[:7], key='rg', parameter_name='rg') + @AllowLargeResponse() + def test_confluent_Scenario(self, rg): call_scenario(self, rg) calc_coverage(__file__) raise_if() diff --git a/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md b/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md index 2c19227528c..7abfcec837c 100644 --- a/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md +++ b/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md @@ -1,8 +1,9 @@ |Scenario|Result|ErrorMessage|ErrorStack|ErrorNormalized|StartDt|EndDt| -|step_terms_list|successed||||2020-12-23 09:29:24.145616|2020-12-23 09:29:24.545014| -|step_organization_create|successed||||2020-12-23 09:29:24.545830|2020-12-23 09:29:24.758231| -|step_organization_show|successed||||2020-12-23 09:29:24.758816|2020-12-23 09:29:24.824684| -|step_organization_list|successed||||2020-12-23 09:29:24.892757|2020-12-23 09:29:24.958794| -|step_organization_update|successed||||2020-12-23 09:29:24.959393|2020-12-23 09:29:25.029235| -|step_organization_delete|successed||||2020-12-23 09:29:25.029809|2020-12-23 09:29:25.182171| -Coverage: 6/6 +|step_terms_list|successed||||2021-05-13 13:06:33.845437|2021-05-13 13:06:35.292435| +|step_organization_create|successed||||2021-05-13 13:06:37.018506|2021-05-13 13:07:20.376307| +|step_organization_show|successed||||2021-05-13 13:07:20.376307|2021-05-13 13:07:21.696726| +|step_organization_list|successed||||2021-05-13 13:07:21.697724|2021-05-13 13:07:23.250472| +|step_organization_list2|successed||||2021-05-13 13:07:23.250472|2021-05-13 13:07:24.680806| +|step_organization_update|successed||||2021-05-13 13:07:24.680806|2021-05-13 13:07:29.103602| +|step_organization_delete|successed||||2021-05-13 13:07:29.104591|2021-05-13 13:08:01.324778| +Coverage: 7/7 diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/__init__.py b/src/confluent/azext_confluent/vendored_sdks/confluent/__init__.py index 64fa1c3df06..8531fdbc09a 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/__init__.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/__init__.py @@ -7,6 +7,9 @@ # -------------------------------------------------------------------------- from ._confluent_management_client import ConfluentManagementClient +from ._version import VERSION + +__version__ = VERSION __all__ = ['ConfluentManagementClient'] try: diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/_configuration.py b/src/confluent/azext_confluent/vendored_sdks/confluent/_configuration.py index 0e7a7f52990..d9022ac8658 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/_configuration.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/_configuration.py @@ -12,13 +12,14 @@ from azure.core.pipeline import policies from azure.mgmt.core.policies import ARMHttpLoggingPolicy +from ._version import VERSION + if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports from typing import Any from azure.core.credentials import TokenCredential -VERSION = "unknown" class ConfluentManagementClientConfiguration(Configuration): """Configuration for ConfluentManagementClient. @@ -49,7 +50,7 @@ def __init__( self.subscription_id = subscription_id self.api_version = "2020-03-01-preview" self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) - kwargs.setdefault('sdk_moniker', 'confluentmanagementclient/{}'.format(VERSION)) + kwargs.setdefault('sdk_moniker', 'mgmt-confluent/{}'.format(VERSION)) self._configure(**kwargs) def _configure( diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/_confluent_management_client.py b/src/confluent/azext_confluent/vendored_sdks/confluent/_confluent_management_client.py index 8cb2fd1a0b7..fc81920ed8f 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/_confluent_management_client.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/_confluent_management_client.py @@ -18,8 +18,8 @@ from azure.core.credentials import TokenCredential from ._configuration import ConfluentManagementClientConfiguration -from .operations import MarketplaceAgreementOperations -from .operations import OrganizationOperationOperations +from .operations import MarketplaceAgreementsOperations +from .operations import OrganizationOperationsOperations from .operations import OrganizationOperations from . import models @@ -27,12 +27,12 @@ class ConfluentManagementClient(object): """ConfluentManagementClient. - :ivar marketplace_agreement: MarketplaceAgreementOperations operations - :vartype marketplace_agreement: confluent_management_client.operations.MarketplaceAgreementOperations - :ivar organization_operation: OrganizationOperationOperations operations - :vartype organization_operation: confluent_management_client.operations.OrganizationOperationOperations + :ivar marketplace_agreements: MarketplaceAgreementsOperations operations + :vartype marketplace_agreements: azure.mgmt.confluent.operations.MarketplaceAgreementsOperations + :ivar organization_operations: OrganizationOperationsOperations operations + :vartype organization_operations: azure.mgmt.confluent.operations.OrganizationOperationsOperations :ivar organization: OrganizationOperations operations - :vartype organization: confluent_management_client.operations.OrganizationOperations + :vartype organization: azure.mgmt.confluent.operations.OrganizationOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials.TokenCredential :param subscription_id: Microsoft Azure subscription id. @@ -56,11 +56,12 @@ def __init__( client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False self._deserialize = Deserializer(client_models) - self.marketplace_agreement = MarketplaceAgreementOperations( + self.marketplace_agreements = MarketplaceAgreementsOperations( self._client, self._config, self._serialize, self._deserialize) - self.organization_operation = OrganizationOperationOperations( + self.organization_operations = OrganizationOperationsOperations( self._client, self._config, self._serialize, self._deserialize) self.organization = OrganizationOperations( self._client, self._config, self._serialize, self._deserialize) diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/_version.py b/src/confluent/azext_confluent/vendored_sdks/confluent/_version.py new file mode 100644 index 00000000000..e5754a47ce6 --- /dev/null +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/_version.py @@ -0,0 +1,9 @@ +# 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 = "1.0.0b1" diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/_configuration.py b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/_configuration.py index f92f2a958c7..d17bb6d7dbc 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/_configuration.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/_configuration.py @@ -12,11 +12,12 @@ from azure.core.pipeline import policies from azure.mgmt.core.policies import ARMHttpLoggingPolicy +from .._version import VERSION + if TYPE_CHECKING: # pylint: disable=unused-import,ungrouped-imports from azure.core.credentials_async import AsyncTokenCredential -VERSION = "unknown" class ConfluentManagementClientConfiguration(Configuration): """Configuration for ConfluentManagementClient. @@ -46,7 +47,7 @@ def __init__( self.subscription_id = subscription_id self.api_version = "2020-03-01-preview" self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) - kwargs.setdefault('sdk_moniker', 'confluentmanagementclient/{}'.format(VERSION)) + kwargs.setdefault('sdk_moniker', 'mgmt-confluent/{}'.format(VERSION)) self._configure(**kwargs) def _configure( diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/_confluent_management_client.py b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/_confluent_management_client.py index 2386e6f920d..5a165e6d2dc 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/_confluent_management_client.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/_confluent_management_client.py @@ -16,8 +16,8 @@ from azure.core.credentials_async import AsyncTokenCredential from ._configuration import ConfluentManagementClientConfiguration -from .operations import MarketplaceAgreementOperations -from .operations import OrganizationOperationOperations +from .operations import MarketplaceAgreementsOperations +from .operations import OrganizationOperationsOperations from .operations import OrganizationOperations from .. import models @@ -25,12 +25,12 @@ class ConfluentManagementClient(object): """ConfluentManagementClient. - :ivar marketplace_agreement: MarketplaceAgreementOperations operations - :vartype marketplace_agreement: confluent_management_client.aio.operations.MarketplaceAgreementOperations - :ivar organization_operation: OrganizationOperationOperations operations - :vartype organization_operation: confluent_management_client.aio.operations.OrganizationOperationOperations + :ivar marketplace_agreements: MarketplaceAgreementsOperations operations + :vartype marketplace_agreements: azure.mgmt.confluent.aio.operations.MarketplaceAgreementsOperations + :ivar organization_operations: OrganizationOperationsOperations operations + :vartype organization_operations: azure.mgmt.confluent.aio.operations.OrganizationOperationsOperations :ivar organization: OrganizationOperations operations - :vartype organization: confluent_management_client.aio.operations.OrganizationOperations + :vartype organization: azure.mgmt.confluent.aio.operations.OrganizationOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials_async.AsyncTokenCredential :param subscription_id: Microsoft Azure subscription id. @@ -53,11 +53,12 @@ def __init__( client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} self._serialize = Serializer(client_models) + self._serialize.client_side_validation = False self._deserialize = Deserializer(client_models) - self.marketplace_agreement = MarketplaceAgreementOperations( + self.marketplace_agreements = MarketplaceAgreementsOperations( self._client, self._config, self._serialize, self._deserialize) - self.organization_operation = OrganizationOperationOperations( + self.organization_operations = OrganizationOperationsOperations( self._client, self._config, self._serialize, self._deserialize) self.organization = OrganizationOperations( self._client, self._config, self._serialize, self._deserialize) diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/__init__.py b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/__init__.py index d755f95eb5e..a48992bda8e 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/__init__.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/__init__.py @@ -6,12 +6,12 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from ._marketplace_agreement_operations import MarketplaceAgreementOperations -from ._organization_operation_operations import OrganizationOperationOperations +from ._marketplace_agreements_operations import MarketplaceAgreementsOperations +from ._organization_operations_operations import OrganizationOperationsOperations from ._organization_operations import OrganizationOperations __all__ = [ - 'MarketplaceAgreementOperations', - 'OrganizationOperationOperations', + 'MarketplaceAgreementsOperations', + 'OrganizationOperationsOperations', 'OrganizationOperations', ] diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_marketplace_agreement_operations.py b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_marketplace_agreements_operations.py similarity index 92% rename from src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_marketplace_agreement_operations.py rename to src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_marketplace_agreements_operations.py index 1d656fad86c..0899ef68e84 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_marketplace_agreement_operations.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_marketplace_agreements_operations.py @@ -19,14 +19,14 @@ T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] -class MarketplaceAgreementOperations: - """MarketplaceAgreementOperations async operations. +class MarketplaceAgreementsOperations: + """MarketplaceAgreementsOperations 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: ~confluent_management_client.models + :type models: ~azure.mgmt.confluent.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -51,7 +51,7 @@ def list( :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ConfluentAgreementResourceListResponse or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~confluent_management_client.models.ConfluentAgreementResourceListResponse] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.confluent.models.ConfluentAgreementResourceListResponse] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["models.ConfluentAgreementResourceListResponse"] @@ -112,18 +112,18 @@ async def get_next(next_link=None): async def create( self, - properties: Optional["models.ConfluentAgreementProperties"] = None, + body: Optional["models.ConfluentAgreementResource"] = None, **kwargs ) -> "models.ConfluentAgreementResource": """Create Confluent Marketplace agreement in the subscription. Create Confluent Marketplace agreement in the subscription. - :param properties: Represents the properties of the resource. - :type properties: ~confluent_management_client.models.ConfluentAgreementProperties + :param body: Confluent Marketplace Agreement resource. + :type body: ~azure.mgmt.confluent.models.ConfluentAgreementResource :keyword callable cls: A custom type or function that will be passed the direct response :return: ConfluentAgreementResource, or the result of cls(response) - :rtype: ~confluent_management_client.models.ConfluentAgreementResource + :rtype: ~azure.mgmt.confluent.models.ConfluentAgreementResource :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["models.ConfluentAgreementResource"] @@ -131,8 +131,6 @@ async def create( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - - body = models.ConfluentAgreementResource(properties=properties) api_version = "2020-03-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operations.py b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operations.py index cd327771a86..2d5e85a544f 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operations.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operations.py @@ -28,7 +28,7 @@ class OrganizationOperations: instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~confluent_management_client.models + :type models: ~azure.mgmt.confluent.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -53,7 +53,7 @@ def list_by_subscription( :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either OrganizationResourceListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~confluent_management_client.models.OrganizationResourceListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.confluent.models.OrganizationResourceListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["models.OrganizationResourceListResult"] @@ -125,7 +125,7 @@ def list_by_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 OrganizationResourceListResult or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~confluent_management_client.models.OrganizationResourceListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.confluent.models.OrganizationResourceListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["models.OrganizationResourceListResult"] @@ -201,7 +201,7 @@ async def get( :type organization_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: OrganizationResource, or the result of cls(response) - :rtype: ~confluent_management_client.models.OrganizationResource + :rtype: ~azure.mgmt.confluent.models.OrganizationResource :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["models.OrganizationResource"] @@ -250,11 +250,7 @@ async def _create_initial( self, resource_group_name: str, organization_name: str, - tags: Optional[Dict[str, str]] = None, - location: Optional[str] = None, - provisioning_state: Optional[Union[str, "models.ProvisionState"]] = None, - offer_detail: Optional["models.OfferDetail"] = None, - user_detail: Optional["models.UserDetail"] = None, + body: Optional["models.OrganizationResource"] = None, **kwargs ) -> "models.OrganizationResource": cls = kwargs.pop('cls', None) # type: ClsType["models.OrganizationResource"] @@ -262,8 +258,6 @@ async def _create_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - - body = models.OrganizationResource(tags=tags, location=location, provisioning_state=provisioning_state, offer_detail=offer_detail, user_detail=user_detail) api_version = "2020-03-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -317,11 +311,7 @@ async def begin_create( self, resource_group_name: str, organization_name: str, - tags: Optional[Dict[str, str]] = None, - location: Optional[str] = None, - provisioning_state: Optional[Union[str, "models.ProvisionState"]] = None, - offer_detail: Optional["models.OfferDetail"] = None, - user_detail: Optional["models.UserDetail"] = None, + body: Optional["models.OrganizationResource"] = None, **kwargs ) -> AsyncLROPoller["models.OrganizationResource"]: """Create Organization resource. @@ -332,16 +322,8 @@ async def begin_create( :type resource_group_name: str :param organization_name: Organization resource name. :type organization_name: str - :param tags: Organization resource tags. - :type tags: dict[str, str] - :param location: Location of Organization resource. - :type location: str - :param provisioning_state: Provision states for confluent RP. - :type provisioning_state: str or ~confluent_management_client.models.ProvisionState - :param offer_detail: Confluent offer detail. - :type offer_detail: ~confluent_management_client.models.OfferDetail - :param user_detail: Subscriber detail. - :type user_detail: ~confluent_management_client.models.UserDetail + :param body: Organization resource model. + :type body: ~azure.mgmt.confluent.models.OrganizationResource :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 @@ -349,7 +331,7 @@ async def begin_create( :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 OrganizationResource or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~confluent_management_client.models.OrganizationResource] + :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.confluent.models.OrganizationResource] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] @@ -363,11 +345,7 @@ async def begin_create( raw_result = await self._create_initial( resource_group_name=resource_group_name, organization_name=organization_name, - tags=tags, - location=location, - provisioning_state=provisioning_state, - offer_detail=offer_detail, - user_detail=user_detail, + body=body, cls=lambda x,y,z: x, **kwargs ) @@ -406,7 +384,7 @@ async def update( self, resource_group_name: str, organization_name: str, - tags: Optional[Dict[str, str]] = None, + body: Optional["models.OrganizationResourceUpdate"] = None, **kwargs ) -> "models.OrganizationResource": """Update Organization resource. @@ -417,11 +395,11 @@ async def update( :type resource_group_name: str :param organization_name: Organization resource name. :type organization_name: str - :param tags: ARM resource tags. - :type tags: dict[str, str] + :param body: Updated Organization resource. + :type body: ~azure.mgmt.confluent.models.OrganizationResourceUpdate :keyword callable cls: A custom type or function that will be passed the direct response :return: OrganizationResource, or the result of cls(response) - :rtype: ~confluent_management_client.models.OrganizationResource + :rtype: ~azure.mgmt.confluent.models.OrganizationResource :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["models.OrganizationResource"] @@ -429,8 +407,6 @@ async def update( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - - body = models.OrganizationResourceUpdate(tags=tags) api_version = "2020-03-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operation_operations.py b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operations_operations.py similarity index 94% rename from src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operation_operations.py rename to src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operations_operations.py index 569fe905b18..fb4dc45eca4 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operation_operations.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operations_operations.py @@ -19,14 +19,14 @@ T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] -class OrganizationOperationOperations: - """OrganizationOperationOperations async operations. +class OrganizationOperationsOperations: + """OrganizationOperationsOperations 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: ~confluent_management_client.models + :type models: ~azure.mgmt.confluent.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -51,7 +51,7 @@ def list( :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[~confluent_management_client.models.OperationListResult] + :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.confluent.models.OperationListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["models.OperationListResult"] diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/models/__init__.py b/src/confluent/azext_confluent/vendored_sdks/confluent/models/__init__.py index 74def73f0f6..cafee5127aa 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/models/__init__.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/models/__init__.py @@ -7,7 +7,6 @@ # -------------------------------------------------------------------------- try: - from ._models_py3 import ConfluentAgreementProperties from ._models_py3 import ConfluentAgreementResource from ._models_py3 import ConfluentAgreementResourceListResponse from ._models_py3 import ErrorResponseBody @@ -25,7 +24,6 @@ from ._models_py3 import ResourceProviderDefaultErrorResponse from ._models_py3 import UserDetail except (SyntaxError, ImportError): - from ._models import ConfluentAgreementProperties # type: ignore from ._models import ConfluentAgreementResource # type: ignore from ._models import ConfluentAgreementResourceListResponse # type: ignore from ._models import ErrorResponseBody # type: ignore @@ -49,7 +47,6 @@ ) __all__ = [ - 'ConfluentAgreementProperties', 'ConfluentAgreementResource', 'ConfluentAgreementResourceListResponse', 'ErrorResponseBody', diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/models/_models.py b/src/confluent/azext_confluent/vendored_sdks/confluent/models/_models.py index bc45061e120..1ecd1abbd5a 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/models/_models.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/models/_models.py @@ -10,9 +10,17 @@ import msrest.serialization -class ConfluentAgreementProperties(msrest.serialization.Model): - """Terms properties for Marketplace and Confluent. +class ConfluentAgreementResource(msrest.serialization.Model): + """Agreement Terms definition. + + Variables are only populated by the server, and will be ignored when sending a request. + :ivar id: The ARM id of the resource. + :vartype id: str + :ivar name: The name of the agreement. + :vartype name: str + :ivar type: The type of the agreement. + :vartype type: str :param publisher: Publisher identifier string. :type publisher: str :param product: Product identifier string. @@ -32,47 +40,6 @@ class ConfluentAgreementProperties(msrest.serialization.Model): :type accepted: bool """ - _attribute_map = { - 'publisher': {'key': 'publisher', 'type': 'str'}, - 'product': {'key': 'product', 'type': 'str'}, - 'plan': {'key': 'plan', 'type': 'str'}, - 'license_text_link': {'key': 'licenseTextLink', 'type': 'str'}, - 'privacy_policy_link': {'key': 'privacyPolicyLink', 'type': 'str'}, - 'retrieve_datetime': {'key': 'retrieveDatetime', 'type': 'iso-8601'}, - 'signature': {'key': 'signature', 'type': 'str'}, - 'accepted': {'key': 'accepted', 'type': 'bool'}, - } - - def __init__( - self, - **kwargs - ): - super(ConfluentAgreementProperties, self).__init__(**kwargs) - self.publisher = kwargs.get('publisher', None) - self.product = kwargs.get('product', None) - self.plan = kwargs.get('plan', None) - self.license_text_link = kwargs.get('license_text_link', None) - self.privacy_policy_link = kwargs.get('privacy_policy_link', None) - self.retrieve_datetime = kwargs.get('retrieve_datetime', None) - self.signature = kwargs.get('signature', None) - self.accepted = kwargs.get('accepted', None) - - -class ConfluentAgreementResource(msrest.serialization.Model): - """Agreement Terms definition. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: The ARM id of the resource. - :vartype id: str - :ivar name: The name of the agreement. - :vartype name: str - :ivar type: The type of the agreement. - :vartype type: str - :param properties: Represents the properties of the resource. - :type properties: ~confluent_management_client.models.ConfluentAgreementProperties - """ - _validation = { 'id': {'readonly': True}, 'name': {'readonly': True}, @@ -83,7 +50,14 @@ class ConfluentAgreementResource(msrest.serialization.Model): 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, - 'properties': {'key': 'properties', 'type': 'ConfluentAgreementProperties'}, + 'publisher': {'key': 'properties.publisher', 'type': 'str'}, + 'product': {'key': 'properties.product', 'type': 'str'}, + 'plan': {'key': 'properties.plan', 'type': 'str'}, + 'license_text_link': {'key': 'properties.licenseTextLink', 'type': 'str'}, + 'privacy_policy_link': {'key': 'properties.privacyPolicyLink', 'type': 'str'}, + 'retrieve_datetime': {'key': 'properties.retrieveDatetime', 'type': 'iso-8601'}, + 'signature': {'key': 'properties.signature', 'type': 'str'}, + 'accepted': {'key': 'properties.accepted', 'type': 'bool'}, } def __init__( @@ -94,14 +68,21 @@ def __init__( self.id = None self.name = None self.type = None - self.properties = kwargs.get('properties', None) + self.publisher = kwargs.get('publisher', None) + self.product = kwargs.get('product', None) + self.plan = kwargs.get('plan', None) + self.license_text_link = kwargs.get('license_text_link', None) + self.privacy_policy_link = kwargs.get('privacy_policy_link', None) + self.retrieve_datetime = kwargs.get('retrieve_datetime', None) + self.signature = kwargs.get('signature', None) + self.accepted = kwargs.get('accepted', None) class ConfluentAgreementResourceListResponse(msrest.serialization.Model): - """Response of a agreements operation. + """Response of a list operation. :param value: Results of a list operation. - :type value: list[~confluent_management_client.models.ConfluentAgreementResource] + :type value: list[~azure.mgmt.confluent.models.ConfluentAgreementResource] :param next_link: Link to the next set of results, if any. :type next_link: str """ @@ -132,7 +113,7 @@ class ErrorResponseBody(msrest.serialization.Model): :ivar target: Error target. :vartype target: str :ivar details: Error detail. - :vartype details: list[~confluent_management_client.models.ErrorResponseBody] + :vartype details: list[~azure.mgmt.confluent.models.ErrorResponseBody] """ _validation = { @@ -176,7 +157,7 @@ class OfferDetail(msrest.serialization.Model): :param status: SaaS Offer Status. Possible values include: "Started", "PendingFulfillmentStart", "InProgress", "Subscribed", "Suspended", "Reinstated", "Succeeded", "Failed", "Unsubscribed", "Updating". - :type status: str or ~confluent_management_client.models.SaaSOfferStatus + :type status: str or ~azure.mgmt.confluent.models.SaaSOfferStatus """ _validation = { @@ -244,7 +225,7 @@ class OperationListResult(msrest.serialization.Model): """Result of GET request to list Confluent operations. :param value: List of Confluent operations supported by the Microsoft.Confluent provider. - :type value: list[~confluent_management_client.models.OperationResult] + :type value: list[~azure.mgmt.confluent.models.OperationResult] :param next_link: URL to get the next set of operation list results if there are any. :type next_link: str """ @@ -269,12 +250,15 @@ class OperationResult(msrest.serialization.Model): :param name: Operation name: {provider}/{resource}/{operation}. :type name: str :param display: The object that represents the operation. - :type display: ~confluent_management_client.models.OperationDisplay + :type display: ~azure.mgmt.confluent.models.OperationDisplay + :param is_data_action: Indicates whether the operation is a data action. + :type is_data_action: bool """ _attribute_map = { 'name': {'key': 'name', 'type': 'str'}, 'display': {'key': 'display', 'type': 'OperationDisplay'}, + 'is_data_action': {'key': 'isDataAction', 'type': 'bool'}, } def __init__( @@ -284,6 +268,7 @@ def __init__( super(OperationResult, self).__init__(**kwargs) self.name = kwargs.get('name', None) self.display = kwargs.get('display', None) + self.is_data_action = kwargs.get('is_data_action', None) class OrganizationResource(msrest.serialization.Model): @@ -303,18 +288,18 @@ class OrganizationResource(msrest.serialization.Model): :type location: str :ivar created_time: The creation time of the resource. :vartype created_time: ~datetime.datetime - :param provisioning_state: Provision states for confluent RP. Possible values include: + :ivar provisioning_state: Provision states for confluent RP. Possible values include: "Accepted", "Creating", "Updating", "Deleting", "Succeeded", "Failed", "Canceled", "Deleted", "NotSpecified". - :type provisioning_state: str or ~confluent_management_client.models.ProvisionState + :vartype provisioning_state: str or ~azure.mgmt.confluent.models.ProvisionState :ivar organization_id: Id of the Confluent organization. :vartype organization_id: str :ivar sso_url: SSO url for the Confluent organization. :vartype sso_url: str :param offer_detail: Confluent offer detail. - :type offer_detail: ~confluent_management_client.models.OfferDetail + :type offer_detail: ~azure.mgmt.confluent.models.OfferDetail :param user_detail: Subscriber detail. - :type user_detail: ~confluent_management_client.models.UserDetail + :type user_detail: ~azure.mgmt.confluent.models.UserDetail """ _validation = { @@ -322,6 +307,7 @@ class OrganizationResource(msrest.serialization.Model): 'name': {'readonly': True}, 'type': {'readonly': True}, 'created_time': {'readonly': True}, + 'provisioning_state': {'readonly': True}, 'organization_id': {'readonly': True}, 'sso_url': {'readonly': True}, } @@ -351,7 +337,7 @@ def __init__( self.tags = kwargs.get('tags', None) self.location = kwargs.get('location', None) self.created_time = None - self.provisioning_state = kwargs.get('provisioning_state', None) + self.provisioning_state = None self.organization_id = None self.sso_url = None self.offer_detail = kwargs.get('offer_detail', None) @@ -362,7 +348,7 @@ class OrganizationResourceListResult(msrest.serialization.Model): """The response of a list operation. :param value: Result of a list operation. - :type value: list[~confluent_management_client.models.OrganizationResource] + :type value: list[~azure.mgmt.confluent.models.OrganizationResource] :param next_link: Link to the next set of results, if any. :type next_link: str """ @@ -388,22 +374,23 @@ class OrganizationResourceProperties(msrest.serialization.Model): :ivar created_time: The creation time of the resource. :vartype created_time: ~datetime.datetime - :param provisioning_state: Provision states for confluent RP. Possible values include: + :ivar provisioning_state: Provision states for confluent RP. Possible values include: "Accepted", "Creating", "Updating", "Deleting", "Succeeded", "Failed", "Canceled", "Deleted", "NotSpecified". - :type provisioning_state: str or ~confluent_management_client.models.ProvisionState + :vartype provisioning_state: str or ~azure.mgmt.confluent.models.ProvisionState :ivar organization_id: Id of the Confluent organization. :vartype organization_id: str :ivar sso_url: SSO url for the Confluent organization. :vartype sso_url: str :param offer_detail: Confluent offer detail. - :type offer_detail: ~confluent_management_client.models.OfferDetail + :type offer_detail: ~azure.mgmt.confluent.models.OfferDetail :param user_detail: Subscriber detail. - :type user_detail: ~confluent_management_client.models.UserDetail + :type user_detail: ~azure.mgmt.confluent.models.UserDetail """ _validation = { 'created_time': {'readonly': True}, + 'provisioning_state': {'readonly': True}, 'organization_id': {'readonly': True}, 'sso_url': {'readonly': True}, } @@ -423,7 +410,7 @@ def __init__( ): super(OrganizationResourceProperties, self).__init__(**kwargs) self.created_time = None - self.provisioning_state = kwargs.get('provisioning_state', None) + self.provisioning_state = None self.organization_id = None self.sso_url = None self.offer_detail = kwargs.get('offer_detail', None) @@ -437,22 +424,23 @@ class OrganizationResourcePropertiesautogenerated(OrganizationResourceProperties :ivar created_time: The creation time of the resource. :vartype created_time: ~datetime.datetime - :param provisioning_state: Provision states for confluent RP. Possible values include: + :ivar provisioning_state: Provision states for confluent RP. Possible values include: "Accepted", "Creating", "Updating", "Deleting", "Succeeded", "Failed", "Canceled", "Deleted", "NotSpecified". - :type provisioning_state: str or ~confluent_management_client.models.ProvisionState + :vartype provisioning_state: str or ~azure.mgmt.confluent.models.ProvisionState :ivar organization_id: Id of the Confluent organization. :vartype organization_id: str :ivar sso_url: SSO url for the Confluent organization. :vartype sso_url: str :param offer_detail: Confluent offer detail. - :type offer_detail: ~confluent_management_client.models.OfferDetail + :type offer_detail: ~azure.mgmt.confluent.models.OfferDetail :param user_detail: Subscriber detail. - :type user_detail: ~confluent_management_client.models.UserDetail + :type user_detail: ~azure.mgmt.confluent.models.UserDetail """ _validation = { 'created_time': {'readonly': True}, + 'provisioning_state': {'readonly': True}, 'organization_id': {'readonly': True}, 'sso_url': {'readonly': True}, } @@ -489,7 +477,7 @@ class OrganizationResourcePropertiesOfferDetail(OfferDetail): :param status: SaaS Offer Status. Possible values include: "Started", "PendingFulfillmentStart", "InProgress", "Subscribed", "Suspended", "Reinstated", "Succeeded", "Failed", "Unsubscribed", "Updating". - :type status: str or ~confluent_management_client.models.SaaSOfferStatus + :type status: str or ~azure.mgmt.confluent.models.SaaSOfferStatus """ _validation = { @@ -604,7 +592,7 @@ class ResourceProviderDefaultErrorResponse(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar error: Response body of Error. - :vartype error: ~confluent_management_client.models.ErrorResponseBody + :vartype error: ~azure.mgmt.confluent.models.ErrorResponseBody """ _validation = { diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/models/_models_py3.py b/src/confluent/azext_confluent/vendored_sdks/confluent/models/_models_py3.py index 857fc9379ee..18652da6ae5 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/models/_models_py3.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/models/_models_py3.py @@ -15,9 +15,17 @@ from ._confluent_management_client_enums import * -class ConfluentAgreementProperties(msrest.serialization.Model): - """Terms properties for Marketplace and Confluent. +class ConfluentAgreementResource(msrest.serialization.Model): + """Agreement Terms definition. + + Variables are only populated by the server, and will be ignored when sending a request. + :ivar id: The ARM id of the resource. + :vartype id: str + :ivar name: The name of the agreement. + :vartype name: str + :ivar type: The type of the agreement. + :vartype type: str :param publisher: Publisher identifier string. :type publisher: str :param product: Product identifier string. @@ -37,15 +45,24 @@ class ConfluentAgreementProperties(msrest.serialization.Model): :type accepted: bool """ + _validation = { + 'id': {'readonly': True}, + 'name': {'readonly': True}, + 'type': {'readonly': True}, + } + _attribute_map = { - 'publisher': {'key': 'publisher', 'type': 'str'}, - 'product': {'key': 'product', 'type': 'str'}, - 'plan': {'key': 'plan', 'type': 'str'}, - 'license_text_link': {'key': 'licenseTextLink', 'type': 'str'}, - 'privacy_policy_link': {'key': 'privacyPolicyLink', 'type': 'str'}, - 'retrieve_datetime': {'key': 'retrieveDatetime', 'type': 'iso-8601'}, - 'signature': {'key': 'signature', 'type': 'str'}, - 'accepted': {'key': 'accepted', 'type': 'bool'}, + 'id': {'key': 'id', 'type': 'str'}, + 'name': {'key': 'name', 'type': 'str'}, + 'type': {'key': 'type', 'type': 'str'}, + 'publisher': {'key': 'properties.publisher', 'type': 'str'}, + 'product': {'key': 'properties.product', 'type': 'str'}, + 'plan': {'key': 'properties.plan', 'type': 'str'}, + 'license_text_link': {'key': 'properties.licenseTextLink', 'type': 'str'}, + 'privacy_policy_link': {'key': 'properties.privacyPolicyLink', 'type': 'str'}, + 'retrieve_datetime': {'key': 'properties.retrieveDatetime', 'type': 'iso-8601'}, + 'signature': {'key': 'properties.signature', 'type': 'str'}, + 'accepted': {'key': 'properties.accepted', 'type': 'bool'}, } def __init__( @@ -61,7 +78,10 @@ def __init__( accepted: Optional[bool] = None, **kwargs ): - super(ConfluentAgreementProperties, self).__init__(**kwargs) + super(ConfluentAgreementResource, self).__init__(**kwargs) + self.id = None + self.name = None + self.type = None self.publisher = publisher self.product = product self.plan = plan @@ -72,52 +92,11 @@ def __init__( self.accepted = accepted -class ConfluentAgreementResource(msrest.serialization.Model): - """Agreement Terms definition. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: The ARM id of the resource. - :vartype id: str - :ivar name: The name of the agreement. - :vartype name: str - :ivar type: The type of the agreement. - :vartype type: str - :param properties: Represents the properties of the resource. - :type properties: ~confluent_management_client.models.ConfluentAgreementProperties - """ - - _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': 'ConfluentAgreementProperties'}, - } - - def __init__( - self, - *, - properties: Optional["ConfluentAgreementProperties"] = None, - **kwargs - ): - super(ConfluentAgreementResource, self).__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.properties = properties - - class ConfluentAgreementResourceListResponse(msrest.serialization.Model): - """Response of a agreements operation. + """Response of a list operation. :param value: Results of a list operation. - :type value: list[~confluent_management_client.models.ConfluentAgreementResource] + :type value: list[~azure.mgmt.confluent.models.ConfluentAgreementResource] :param next_link: Link to the next set of results, if any. :type next_link: str """ @@ -151,7 +130,7 @@ class ErrorResponseBody(msrest.serialization.Model): :ivar target: Error target. :vartype target: str :ivar details: Error detail. - :vartype details: list[~confluent_management_client.models.ErrorResponseBody] + :vartype details: list[~azure.mgmt.confluent.models.ErrorResponseBody] """ _validation = { @@ -195,7 +174,7 @@ class OfferDetail(msrest.serialization.Model): :param status: SaaS Offer Status. Possible values include: "Started", "PendingFulfillmentStart", "InProgress", "Subscribed", "Suspended", "Reinstated", "Succeeded", "Failed", "Unsubscribed", "Updating". - :type status: str or ~confluent_management_client.models.SaaSOfferStatus + :type status: str or ~azure.mgmt.confluent.models.SaaSOfferStatus """ _validation = { @@ -275,7 +254,7 @@ class OperationListResult(msrest.serialization.Model): """Result of GET request to list Confluent operations. :param value: List of Confluent operations supported by the Microsoft.Confluent provider. - :type value: list[~confluent_management_client.models.OperationResult] + :type value: list[~azure.mgmt.confluent.models.OperationResult] :param next_link: URL to get the next set of operation list results if there are any. :type next_link: str """ @@ -303,12 +282,15 @@ class OperationResult(msrest.serialization.Model): :param name: Operation name: {provider}/{resource}/{operation}. :type name: str :param display: The object that represents the operation. - :type display: ~confluent_management_client.models.OperationDisplay + :type display: ~azure.mgmt.confluent.models.OperationDisplay + :param is_data_action: Indicates whether the operation is a data action. + :type is_data_action: bool """ _attribute_map = { 'name': {'key': 'name', 'type': 'str'}, 'display': {'key': 'display', 'type': 'OperationDisplay'}, + 'is_data_action': {'key': 'isDataAction', 'type': 'bool'}, } def __init__( @@ -316,11 +298,13 @@ def __init__( *, name: Optional[str] = None, display: Optional["OperationDisplay"] = None, + is_data_action: Optional[bool] = None, **kwargs ): super(OperationResult, self).__init__(**kwargs) self.name = name self.display = display + self.is_data_action = is_data_action class OrganizationResource(msrest.serialization.Model): @@ -340,18 +324,18 @@ class OrganizationResource(msrest.serialization.Model): :type location: str :ivar created_time: The creation time of the resource. :vartype created_time: ~datetime.datetime - :param provisioning_state: Provision states for confluent RP. Possible values include: + :ivar provisioning_state: Provision states for confluent RP. Possible values include: "Accepted", "Creating", "Updating", "Deleting", "Succeeded", "Failed", "Canceled", "Deleted", "NotSpecified". - :type provisioning_state: str or ~confluent_management_client.models.ProvisionState + :vartype provisioning_state: str or ~azure.mgmt.confluent.models.ProvisionState :ivar organization_id: Id of the Confluent organization. :vartype organization_id: str :ivar sso_url: SSO url for the Confluent organization. :vartype sso_url: str :param offer_detail: Confluent offer detail. - :type offer_detail: ~confluent_management_client.models.OfferDetail + :type offer_detail: ~azure.mgmt.confluent.models.OfferDetail :param user_detail: Subscriber detail. - :type user_detail: ~confluent_management_client.models.UserDetail + :type user_detail: ~azure.mgmt.confluent.models.UserDetail """ _validation = { @@ -359,6 +343,7 @@ class OrganizationResource(msrest.serialization.Model): 'name': {'readonly': True}, 'type': {'readonly': True}, 'created_time': {'readonly': True}, + 'provisioning_state': {'readonly': True}, 'organization_id': {'readonly': True}, 'sso_url': {'readonly': True}, } @@ -382,7 +367,6 @@ def __init__( *, tags: Optional[Dict[str, str]] = None, location: Optional[str] = None, - provisioning_state: Optional[Union[str, "ProvisionState"]] = None, offer_detail: Optional["OfferDetail"] = None, user_detail: Optional["UserDetail"] = None, **kwargs @@ -394,7 +378,7 @@ def __init__( self.tags = tags self.location = location self.created_time = None - self.provisioning_state = provisioning_state + self.provisioning_state = None self.organization_id = None self.sso_url = None self.offer_detail = offer_detail @@ -405,7 +389,7 @@ class OrganizationResourceListResult(msrest.serialization.Model): """The response of a list operation. :param value: Result of a list operation. - :type value: list[~confluent_management_client.models.OrganizationResource] + :type value: list[~azure.mgmt.confluent.models.OrganizationResource] :param next_link: Link to the next set of results, if any. :type next_link: str """ @@ -434,22 +418,23 @@ class OrganizationResourceProperties(msrest.serialization.Model): :ivar created_time: The creation time of the resource. :vartype created_time: ~datetime.datetime - :param provisioning_state: Provision states for confluent RP. Possible values include: + :ivar provisioning_state: Provision states for confluent RP. Possible values include: "Accepted", "Creating", "Updating", "Deleting", "Succeeded", "Failed", "Canceled", "Deleted", "NotSpecified". - :type provisioning_state: str or ~confluent_management_client.models.ProvisionState + :vartype provisioning_state: str or ~azure.mgmt.confluent.models.ProvisionState :ivar organization_id: Id of the Confluent organization. :vartype organization_id: str :ivar sso_url: SSO url for the Confluent organization. :vartype sso_url: str :param offer_detail: Confluent offer detail. - :type offer_detail: ~confluent_management_client.models.OfferDetail + :type offer_detail: ~azure.mgmt.confluent.models.OfferDetail :param user_detail: Subscriber detail. - :type user_detail: ~confluent_management_client.models.UserDetail + :type user_detail: ~azure.mgmt.confluent.models.UserDetail """ _validation = { 'created_time': {'readonly': True}, + 'provisioning_state': {'readonly': True}, 'organization_id': {'readonly': True}, 'sso_url': {'readonly': True}, } @@ -466,14 +451,13 @@ class OrganizationResourceProperties(msrest.serialization.Model): def __init__( self, *, - provisioning_state: Optional[Union[str, "ProvisionState"]] = None, offer_detail: Optional["OfferDetail"] = None, user_detail: Optional["UserDetail"] = None, **kwargs ): super(OrganizationResourceProperties, self).__init__(**kwargs) self.created_time = None - self.provisioning_state = provisioning_state + self.provisioning_state = None self.organization_id = None self.sso_url = None self.offer_detail = offer_detail @@ -487,22 +471,23 @@ class OrganizationResourcePropertiesautogenerated(OrganizationResourceProperties :ivar created_time: The creation time of the resource. :vartype created_time: ~datetime.datetime - :param provisioning_state: Provision states for confluent RP. Possible values include: + :ivar provisioning_state: Provision states for confluent RP. Possible values include: "Accepted", "Creating", "Updating", "Deleting", "Succeeded", "Failed", "Canceled", "Deleted", "NotSpecified". - :type provisioning_state: str or ~confluent_management_client.models.ProvisionState + :vartype provisioning_state: str or ~azure.mgmt.confluent.models.ProvisionState :ivar organization_id: Id of the Confluent organization. :vartype organization_id: str :ivar sso_url: SSO url for the Confluent organization. :vartype sso_url: str :param offer_detail: Confluent offer detail. - :type offer_detail: ~confluent_management_client.models.OfferDetail + :type offer_detail: ~azure.mgmt.confluent.models.OfferDetail :param user_detail: Subscriber detail. - :type user_detail: ~confluent_management_client.models.UserDetail + :type user_detail: ~azure.mgmt.confluent.models.UserDetail """ _validation = { 'created_time': {'readonly': True}, + 'provisioning_state': {'readonly': True}, 'organization_id': {'readonly': True}, 'sso_url': {'readonly': True}, } @@ -519,12 +504,11 @@ class OrganizationResourcePropertiesautogenerated(OrganizationResourceProperties def __init__( self, *, - provisioning_state: Optional[Union[str, "ProvisionState"]] = None, offer_detail: Optional["OfferDetail"] = None, user_detail: Optional["UserDetail"] = None, **kwargs ): - super(OrganizationResourcePropertiesautogenerated, self).__init__(provisioning_state=provisioning_state, offer_detail=offer_detail, user_detail=user_detail, **kwargs) + super(OrganizationResourcePropertiesautogenerated, self).__init__(offer_detail=offer_detail, user_detail=user_detail, **kwargs) class OrganizationResourcePropertiesOfferDetail(OfferDetail): @@ -543,7 +527,7 @@ class OrganizationResourcePropertiesOfferDetail(OfferDetail): :param status: SaaS Offer Status. Possible values include: "Started", "PendingFulfillmentStart", "InProgress", "Subscribed", "Suspended", "Reinstated", "Succeeded", "Failed", "Unsubscribed", "Updating". - :type status: str or ~confluent_management_client.models.SaaSOfferStatus + :type status: str or ~azure.mgmt.confluent.models.SaaSOfferStatus """ _validation = { @@ -675,7 +659,7 @@ class ResourceProviderDefaultErrorResponse(msrest.serialization.Model): Variables are only populated by the server, and will be ignored when sending a request. :ivar error: Response body of Error. - :vartype error: ~confluent_management_client.models.ErrorResponseBody + :vartype error: ~azure.mgmt.confluent.models.ErrorResponseBody """ _validation = { diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/__init__.py b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/__init__.py index d755f95eb5e..a48992bda8e 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/__init__.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/__init__.py @@ -6,12 +6,12 @@ # Changes may cause incorrect behavior and will be lost if the code is regenerated. # -------------------------------------------------------------------------- -from ._marketplace_agreement_operations import MarketplaceAgreementOperations -from ._organization_operation_operations import OrganizationOperationOperations +from ._marketplace_agreements_operations import MarketplaceAgreementsOperations +from ._organization_operations_operations import OrganizationOperationsOperations from ._organization_operations import OrganizationOperations __all__ = [ - 'MarketplaceAgreementOperations', - 'OrganizationOperationOperations', + 'MarketplaceAgreementsOperations', + 'OrganizationOperationsOperations', 'OrganizationOperations', ] diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_marketplace_agreement_operations.py b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_marketplace_agreements_operations.py similarity index 92% rename from src/confluent/azext_confluent/vendored_sdks/confluent/operations/_marketplace_agreement_operations.py rename to src/confluent/azext_confluent/vendored_sdks/confluent/operations/_marketplace_agreements_operations.py index 991f6fc95e7..70062747363 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_marketplace_agreement_operations.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_marketplace_agreements_operations.py @@ -23,14 +23,14 @@ T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] -class MarketplaceAgreementOperations(object): - """MarketplaceAgreementOperations operations. +class MarketplaceAgreementsOperations(object): + """MarketplaceAgreementsOperations 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: ~confluent_management_client.models + :type models: ~azure.mgmt.confluent.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -56,7 +56,7 @@ def list( :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either ConfluentAgreementResourceListResponse or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~confluent_management_client.models.ConfluentAgreementResourceListResponse] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.confluent.models.ConfluentAgreementResourceListResponse] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["models.ConfluentAgreementResourceListResponse"] @@ -117,7 +117,7 @@ def get_next(next_link=None): def create( self, - properties=None, # type: Optional["models.ConfluentAgreementProperties"] + body=None, # type: Optional["models.ConfluentAgreementResource"] **kwargs # type: Any ): # type: (...) -> "models.ConfluentAgreementResource" @@ -125,11 +125,11 @@ def create( Create Confluent Marketplace agreement in the subscription. - :param properties: Represents the properties of the resource. - :type properties: ~confluent_management_client.models.ConfluentAgreementProperties + :param body: Confluent Marketplace Agreement resource. + :type body: ~azure.mgmt.confluent.models.ConfluentAgreementResource :keyword callable cls: A custom type or function that will be passed the direct response :return: ConfluentAgreementResource, or the result of cls(response) - :rtype: ~confluent_management_client.models.ConfluentAgreementResource + :rtype: ~azure.mgmt.confluent.models.ConfluentAgreementResource :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["models.ConfluentAgreementResource"] @@ -137,8 +137,6 @@ def create( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - - body = models.ConfluentAgreementResource(properties=properties) api_version = "2020-03-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operations.py b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operations.py index 63ae48b5e75..7c0cd1e2258 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operations.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operations.py @@ -32,7 +32,7 @@ class OrganizationOperations(object): instantiates it for you and attaches it as an attribute. :ivar models: Alias to model classes used in this operation group. - :type models: ~confluent_management_client.models + :type models: ~azure.mgmt.confluent.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -58,7 +58,7 @@ def list_by_subscription( :keyword callable cls: A custom type or function that will be passed the direct response :return: An iterator like instance of either OrganizationResourceListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~confluent_management_client.models.OrganizationResourceListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.confluent.models.OrganizationResourceListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["models.OrganizationResourceListResult"] @@ -131,7 +131,7 @@ def list_by_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 OrganizationResourceListResult or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~confluent_management_client.models.OrganizationResourceListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.confluent.models.OrganizationResourceListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["models.OrganizationResourceListResult"] @@ -208,7 +208,7 @@ def get( :type organization_name: str :keyword callable cls: A custom type or function that will be passed the direct response :return: OrganizationResource, or the result of cls(response) - :rtype: ~confluent_management_client.models.OrganizationResource + :rtype: ~azure.mgmt.confluent.models.OrganizationResource :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["models.OrganizationResource"] @@ -257,11 +257,7 @@ def _create_initial( self, resource_group_name, # type: str organization_name, # type: str - tags=None, # type: Optional[Dict[str, str]] - location=None, # type: Optional[str] - provisioning_state=None, # type: Optional[Union[str, "models.ProvisionState"]] - offer_detail=None, # type: Optional["models.OfferDetail"] - user_detail=None, # type: Optional["models.UserDetail"] + body=None, # type: Optional["models.OrganizationResource"] **kwargs # type: Any ): # type: (...) -> "models.OrganizationResource" @@ -270,8 +266,6 @@ def _create_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - - body = models.OrganizationResource(tags=tags, location=location, provisioning_state=provisioning_state, offer_detail=offer_detail, user_detail=user_detail) api_version = "2020-03-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -325,11 +319,7 @@ def begin_create( self, resource_group_name, # type: str organization_name, # type: str - tags=None, # type: Optional[Dict[str, str]] - location=None, # type: Optional[str] - provisioning_state=None, # type: Optional[Union[str, "models.ProvisionState"]] - offer_detail=None, # type: Optional["models.OfferDetail"] - user_detail=None, # type: Optional["models.UserDetail"] + body=None, # type: Optional["models.OrganizationResource"] **kwargs # type: Any ): # type: (...) -> LROPoller["models.OrganizationResource"] @@ -341,16 +331,8 @@ def begin_create( :type resource_group_name: str :param organization_name: Organization resource name. :type organization_name: str - :param tags: Organization resource tags. - :type tags: dict[str, str] - :param location: Location of Organization resource. - :type location: str - :param provisioning_state: Provision states for confluent RP. - :type provisioning_state: str or ~confluent_management_client.models.ProvisionState - :param offer_detail: Confluent offer detail. - :type offer_detail: ~confluent_management_client.models.OfferDetail - :param user_detail: Subscriber detail. - :type user_detail: ~confluent_management_client.models.UserDetail + :param body: Organization resource model. + :type body: ~azure.mgmt.confluent.models.OrganizationResource :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 @@ -358,7 +340,7 @@ def begin_create( :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 OrganizationResource or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~confluent_management_client.models.OrganizationResource] + :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.confluent.models.OrganizationResource] :raises ~azure.core.exceptions.HttpResponseError: """ polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] @@ -372,11 +354,7 @@ def begin_create( raw_result = self._create_initial( resource_group_name=resource_group_name, organization_name=organization_name, - tags=tags, - location=location, - provisioning_state=provisioning_state, - offer_detail=offer_detail, - user_detail=user_detail, + body=body, cls=lambda x,y,z: x, **kwargs ) @@ -415,7 +393,7 @@ def update( self, resource_group_name, # type: str organization_name, # type: str - tags=None, # type: Optional[Dict[str, str]] + body=None, # type: Optional["models.OrganizationResourceUpdate"] **kwargs # type: Any ): # type: (...) -> "models.OrganizationResource" @@ -427,11 +405,11 @@ def update( :type resource_group_name: str :param organization_name: Organization resource name. :type organization_name: str - :param tags: ARM resource tags. - :type tags: dict[str, str] + :param body: Updated Organization resource. + :type body: ~azure.mgmt.confluent.models.OrganizationResourceUpdate :keyword callable cls: A custom type or function that will be passed the direct response :return: OrganizationResource, or the result of cls(response) - :rtype: ~confluent_management_client.models.OrganizationResource + :rtype: ~azure.mgmt.confluent.models.OrganizationResource :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["models.OrganizationResource"] @@ -439,8 +417,6 @@ def update( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - - body = models.OrganizationResourceUpdate(tags=tags) api_version = "2020-03-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operation_operations.py b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operations_operations.py similarity index 94% rename from src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operation_operations.py rename to src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operations_operations.py index e77662a47fe..fc16899213e 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operation_operations.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operations_operations.py @@ -23,14 +23,14 @@ T = TypeVar('T') ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] -class OrganizationOperationOperations(object): - """OrganizationOperationOperations operations. +class OrganizationOperationsOperations(object): + """OrganizationOperationsOperations 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: ~confluent_management_client.models + :type models: ~azure.mgmt.confluent.models :param client: Client for service requests. :param config: Configuration of service client. :param serializer: An object model serializer. @@ -56,7 +56,7 @@ def list( :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[~confluent_management_client.models.OperationListResult] + :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.confluent.models.OperationListResult] :raises: ~azure.core.exceptions.HttpResponseError """ cls = kwargs.pop('cls', None) # type: ClsType["models.OperationListResult"] diff --git a/src/confluent/gen.zip b/src/confluent/gen.zip deleted file mode 100644 index d89790a8992dfaa1baae84618a42fbe1e94eb924..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7249 zcmeHMQE%He5O&vf58ejsVc5ff0fYj~Hef5*Q-J^mk|tSEr0KFI#Rde0z({AAjU);r z<-{rS6Z*WTz3d0;j*?~Bmg6LA0<0(lMHYE?JRXmC{K$j7ho3eZR62XV z{cL{}|GvUEzkqY&`7#+q86;-?U@7%CHPi;Q(O2+%x0EO1#5>3OZv5`yKc6=m^z>G- z!a0xA2s~{d)owaoW4-rQnrm!Zreh_-pyZAB5YM4Bnk zphgh5$opLQkZ1^4mIR=f83NmXb~LGW*&#srVa^Q`iKR)Ed;`8=N=m~9QlX?MmxL7f z9p}9^*Q|O0un-bJRj{LzaYe=U%MRPhjC_d}Mtza+X-+5=X}3M(NeG(7e9U~FX+Y_| zREoMjfgv9WsTfZJb|!FmC%__!a>T&u=#x01QH+AJdy@LzY~O1(n*$|d=DJM8Xluia z8hbHMG9F>u8r%JKYyaT+?gm@m=js$p8gU=CLIn_`3+wd|Onr;@TxiqWtcVL>z{r6- z11i>Dgzar|%q~-5m-$2RPj&x=OrW#TWLVG&c_rF_QGH%bO+|g59ly4uB*yjQpxxpZ ztXyEsc7*e)O{;6^h}V{)xBS(a8|hCfCGw- z@rA0zt_%+~+f7D7$%Op3@9e;+&K4w_Id9`}b?PtcC{aFl39v8D!g=7xEs0P z5|^Es&oeFzF7|v{gPJM38#Rw#U%4V^$yd$dJ%uF;y*e0A59Qf?E(YrF-b{9lK(b&q z3Xo66m^iHeJSF$JMpU_nuvwip8$D~xcpJB$%_mhCvT3ARVYA1R@nLqNeI-)b0sL=l z6EbI20Jy>uDL4LbeS5M=^j@XG_0mmd3GZ`->3L*fCvm!Oul0)uHkPv=Y5(y?~(P!HCDf41J0tA@7+KCy8N=ypy%-__&~XC zihDebJ9e&w{0JmIBp^}X2dQ&J!7nleE-rkRW?u)V6M%78%>EHpuOOYtjRy)+u0R!l zWd@Q?WY58im88{7SM1ks#zUKon{iP7zH5#=FyE|~JhBu#B^qq!@T$awIgC{sTzWw- zG)+`$Juhf>Ow(3t@;Of~TT7r!n{>hvmaxW;YdA_+NGsB{nX&CmprO;9fC$K`1} zSP@2yp#LL}G<2pIx+;L++l~c|u0?NKId~&^_3-Vs(k<$HfxwJJ7ufW+vIs5y7g4ms zaVtQQR3a#OBYh}g6XOERyi&^2d9Mdp#~)|C^v@4**6Zl<cII^KBvy30;s+;6E67X@xGksnVj zJ(6Q9^DIke*CeWfVkSzpHADkC!=7knvohAXr)OMYnkfAJZ5fD(pf!86*xFdAnP%Hd z+y@a4mDwFd*>$yjx*2Pi8>+H>vUO{t%!9oLpM2d|eqV*K4h!8}QCYmbTFy=PS9u|B z7oT}BUF@ diff --git a/src/confluent/report.md b/src/confluent/report.md index 1e40e1a0abf..40e938af855 100644 --- a/src/confluent/report.md +++ b/src/confluent/report.md @@ -68,9 +68,8 @@ az confluent organization show --name "myOrganization" --resource-group "myResou ##### Example ``` -az confluent organization create --location "West US" --offer-detail id="string" plan-id="string" plan-name="string" \ -publisher-id="string" term-unit="string" --user-detail email-address="contoso@microsoft.com" first-name="string" \ -last-name="string" --tags Environment="Dev" --name "myOrganization" --resource-group "myResourceGroup" +az confluent organization create --location "West US" --tags Environment="Dev" --name "myOrganization" \ +--resource-group "myResourceGroup" ``` ##### Parameters |Option|Type|Description|Path (SDK)|Swagger name| @@ -79,8 +78,11 @@ last-name="string" --tags Environment="Dev" --name "myOrganization" --resource-g |**--organization-name**|string|Organization resource name|organization_name|organizationName| |**--tags**|dictionary|Organization resource tags|tags|tags| |**--location**|string|Location of Organization resource|location|location| -|**--offer-detail**|object|Confluent offer detail|offer_detail|offerDetail| -|**--user-detail**|object|Subscriber detail|user_detail|userDetail| +|**--publisher-id**|string|Publisher Id|publisher_id|publisherId| +|**--offer-id**|string|Offer Id|offer_id|id| +|**--plan-id**|string|Offer Plan Id|plan_id|planId| +|**--plan-name**|string|Offer Plan Name|plan_name|planName| +|**--term-unit**|string|Offer Plan Term unit|term_unit|termUnit| #### Command `az confluent organization update` From 0df39e26f67adc4d5169d66bb7f8bba817bccb6c Mon Sep 17 00:00:00 2001 From: Feng Zhou Date: Thu, 13 May 2021 21:50:02 +0800 Subject: [PATCH 2/8] fix linter --- src/confluent/azext_confluent/__init__.py | 3 +- .../generated/_client_factory.py | 1 + .../azext_confluent/generated/commands.py | 1 + src/confluent/azext_confluent/manual/_help.py | 11 ++++++ .../azext_confluent/manual/commands.py | 1 + .../azext_confluent/manual/custom.py | 34 +++++++++---------- .../azext_confluent/manual/version.py | 2 +- .../azext_confluent/tests/__init__.py | 6 ++-- 8 files changed, 38 insertions(+), 21 deletions(-) diff --git a/src/confluent/azext_confluent/__init__.py b/src/confluent/azext_confluent/__init__.py index ba9723d3a54..b73ef872c38 100644 --- a/src/confluent/azext_confluent/__init__.py +++ b/src/confluent/azext_confluent/__init__.py @@ -7,6 +7,7 @@ # Changes may cause incorrect behavior and will be lost if the code is # regenerated. # -------------------------------------------------------------------------- +# pylint: disable=import-outside-toplevel from azure.cli.core import AzCommandsLoader from azext_confluent.generated._help import helps # pylint: disable=unused-import @@ -24,7 +25,7 @@ def __init__(self, cli_ctx=None): confluent_custom = CliCommandType( operations_tmpl='azext_confluent.custom#{}', client_factory=cf_confluent_cl) - parent = super(ConfluentManagementClientCommandsLoader, self) + parent = super() parent.__init__(cli_ctx=cli_ctx, custom_command_type=confluent_custom) def load_command_table(self, args): diff --git a/src/confluent/azext_confluent/generated/_client_factory.py b/src/confluent/azext_confluent/generated/_client_factory.py index da8c5ef5da6..8d43cf0368f 100644 --- a/src/confluent/azext_confluent/generated/_client_factory.py +++ b/src/confluent/azext_confluent/generated/_client_factory.py @@ -7,6 +7,7 @@ # Changes may cause incorrect behavior and will be lost if the code is # regenerated. # -------------------------------------------------------------------------- +# pylint: disable=import-outside-toplevel def cf_confluent_cl(cli_ctx, *_): diff --git a/src/confluent/azext_confluent/generated/commands.py b/src/confluent/azext_confluent/generated/commands.py index 6ed92e6406f..e143a660d17 100644 --- a/src/confluent/azext_confluent/generated/commands.py +++ b/src/confluent/azext_confluent/generated/commands.py @@ -9,6 +9,7 @@ # -------------------------------------------------------------------------- # pylint: disable=too-many-statements # pylint: disable=too-many-locals +# pylint: disable=import-outside-toplevel from azure.cli.core.commands import CliCommandType diff --git a/src/confluent/azext_confluent/manual/_help.py b/src/confluent/azext_confluent/manual/_help.py index 3b6b451900e..d19067164cb 100644 --- a/src/confluent/azext_confluent/manual/_help.py +++ b/src/confluent/azext_confluent/manual/_help.py @@ -16,6 +16,17 @@ short-summary: Manage confluent resources """ +helps['confluent organization create'] = """ + type: command + short-summary: "Create Organization resource." + examples: + - name: Create organization + text: |- + az confluent organization create --location "West US" --tags Environment="Dev" --name "myOrganization" \ +--resource-group "myResourceGroup" --offer-id "confluent-cloud-azure-prod" --plan-id "confluent-cloud-azure-payg-prod" \ +--plan-name "Confluent Cloud - Pay as you Go" --publisher-id "confluentinc" --term-unit "P1M" +""" + helps['confluent organization show'] = """ type: command short-summary: "Get the properties of a specific Organization resource." diff --git a/src/confluent/azext_confluent/manual/commands.py b/src/confluent/azext_confluent/manual/commands.py index b747c5913ac..6d0c18087e0 100644 --- a/src/confluent/azext_confluent/manual/commands.py +++ b/src/confluent/azext_confluent/manual/commands.py @@ -7,6 +7,7 @@ # Changes may cause incorrect behavior and will be lost if the code is # regenerated. # -------------------------------------------------------------------------- +# pylint: disable=import-outside-toplevel from azure.cli.core.commands import CliCommandType diff --git a/src/confluent/azext_confluent/manual/custom.py b/src/confluent/azext_confluent/manual/custom.py index 471e1862c42..d4aa7d879d8 100644 --- a/src/confluent/azext_confluent/manual/custom.py +++ b/src/confluent/azext_confluent/manual/custom.py @@ -15,13 +15,13 @@ def confluent_organization_create(cmd, client, resource_group_name, organization_name, + plan_id, + plan_name, + term_unit, tags=None, location=None, publisher_id=None, offer_id=None, - plan_id=None, - plan_name=None, - term_unit=None, no_wait=False): import jwt from azure.cli.core._profile import Profile @@ -74,22 +74,22 @@ def confluent_organization_delete(client, f'- This will permanently delete \'{organization_name}\' and its Azure subscription.\n' \ '- Stop billing for the selected Confluent organization through Azure Marketplace.\n' \ 'Do you want to proceed' - + if org.offer_detail.plan_id.lower() == 'commit': user_confirmation('- The action cannot be undone and will permanently delete this resource.\n' - '- Resource deletion is a permanent action. All the resources, contract purchased ' - 'and its Azure integration will be permanently deleted and will unsubscribe you ' - 'from this service.\n' - '- If you delete the resource, you will not be able to restore the commit contract ' - 'and create Confluent cloud resource once again with this contract.\n' - '- If you are deleting the Confluent cloud resource after 14 days into the contract ' - 'term, you will not get a refund for this service.\n' - '- The resource is also associated with other non-dependent resources like clusters' - ', environments, topics etc. Such associated resources on Confluent cloud will be ' - 'scheduled for deletion. For more information on the Confluent Cloud cluster ' - 'deletion process and timeline, please contact Confluent Support: ' - 'https://support.confluent.io/\n' - 'Do you want to proceed') + '- Resource deletion is a permanent action. All the resources, contract purchased ' + 'and its Azure integration will be permanently deleted and will unsubscribe you ' + 'from this service.\n' + '- If you delete the resource, you will not be able to restore the commit contract ' + 'and create Confluent cloud resource once again with this contract.\n' + '- If you are deleting the Confluent cloud resource after 14 days into the contract ' + 'term, you will not get a refund for this service.\n' + '- The resource is also associated with other non-dependent resources like clusters' + ', environments, topics etc. Such associated resources on Confluent cloud will be ' + 'scheduled for deletion. For more information on the Confluent Cloud cluster ' + 'deletion process and timeline, please contact Confluent Support: ' + 'https://support.confluent.io/\n' + 'Do you want to proceed') else: user_confirmation(default_msg) diff --git a/src/confluent/azext_confluent/manual/version.py b/src/confluent/azext_confluent/manual/version.py index d2efe888b81..c8d62cb0608 100644 --- a/src/confluent/azext_confluent/manual/version.py +++ b/src/confluent/azext_confluent/manual/version.py @@ -8,4 +8,4 @@ # regenerated. # -------------------------------------------------------------------------- -VERSION = "0.2.0" \ No newline at end of file +VERSION = "0.2.0" diff --git a/src/confluent/azext_confluent/tests/__init__.py b/src/confluent/azext_confluent/tests/__init__.py index 70488e93851..4fe3e7cc2b7 100644 --- a/src/confluent/azext_confluent/tests/__init__.py +++ b/src/confluent/azext_confluent/tests/__init__.py @@ -8,6 +8,8 @@ # Changes may cause incorrect behavior and will be lost if the code is # regenerated. # -------------------------------------------------------------------------- +# pylint: disable=import-outside-toplevel + import inspect import logging import os @@ -49,10 +51,10 @@ def get_func_to_call(): func_to_call = import_manual_function(func) logger.info("Found manual override for %s(...)", func.__name__) except (ImportError, AttributeError): - pass + pass # pylint: disable=inconsistent-return-statements return func_to_call - def wrapper(*args, **kwargs): + def wrapper(*args, **kwargs): # pylint: disable=inconsistent-return-statements func_to_call = get_func_to_call() logger.info("running %s()...", func.__name__) try: From 903b3d16249acd5ee4b8c32d21e0bcf70e792c35 Mon Sep 17 00:00:00 2001 From: Feng Zhou Date: Fri, 14 May 2021 10:38:22 +0800 Subject: [PATCH 3/8] fix playback tests --- .../azext_confluent/manual/_params.py | 1 + .../recordings/test_confluent_Scenario.yaml | 292 +++++++++++------- .../tests/latest/test_confluent_scenario.py | 65 +++- .../test_confluent_scenario_coverage.md | 15 +- 4 files changed, 254 insertions(+), 119 deletions(-) diff --git a/src/confluent/azext_confluent/manual/_params.py b/src/confluent/azext_confluent/manual/_params.py index 38ca5c841d0..3b4a1ea5f02 100644 --- a/src/confluent/azext_confluent/manual/_params.py +++ b/src/confluent/azext_confluent/manual/_params.py @@ -8,6 +8,7 @@ # regenerated. # -------------------------------------------------------------------------- + def load_arguments(self, _): with self.argument_context('confluent organization create') as c: c.argument('publisher_id', type=str, help='Publisher Id', default='confluentinc', arg_group='Offer Detail') diff --git a/src/confluent/azext_confluent/tests/latest/recordings/test_confluent_Scenario.yaml b/src/confluent/azext_confluent/tests/latest/recordings/test_confluent_Scenario.yaml index f593f5dd87a..151f36b732f 100644 --- a/src/confluent/azext_confluent/tests/latest/recordings/test_confluent_Scenario.yaml +++ b/src/confluent/azext_confluent/tests/latest/recordings/test_confluent_Scenario.yaml @@ -11,7 +11,7 @@ interactions: Connection: - keep-alive User-Agent: - - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) + - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Confluent/agreements?api-version=2020-03-01-preview response: @@ -25,7 +25,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:06:34 GMT + - Fri, 14 May 2021 03:35:20 GMT expires: - '-1' pragma: @@ -57,7 +57,7 @@ interactions: ParameterSetName: - --publisher-id --offer-id User-Agent: - - python/3.8.8 (Windows-10-10.0.19041-SP0) AZURECLI/2.23.0 (MSI) + - python/3.8.0 (Windows-10-10.0.19041-SP0) AZURECLI/2.23.0 method: GET uri: https://management.azure.com/providers/Microsoft.Marketplace/offers/confluentinc.confluent-cloud-azure-stag?excludePublic=true&api-version=2018-08-01-beta response: @@ -128,7 +128,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:06:35 GMT + - Fri, 14 May 2021 03:35:21 GMT expires: - '-1' pragma: @@ -136,8 +136,8 @@ interactions: server: - Microsoft-IIS/10.0 set-cookie: - - ARRAffinity=82b0635b3f18447efed7c3088ba2fffbc37f91433df971dfb94cbe7257168025;Path=/;HttpOnly;Secure;Domain=marketplacerp.azure.com - - ARRAffinitySameSite=82b0635b3f18447efed7c3088ba2fffbc37f91433df971dfb94cbe7257168025;Path=/;HttpOnly;SameSite=None;Secure;Domain=marketplacerp.azure.com + - ARRAffinity=0c1a6972157af12ca575fb7a0ce73c735c8fb0151334f0283fcc042a338a2cb6;Path=/;HttpOnly;Secure;Domain=marketplacerp.azure.com + - ARRAffinitySameSite=0c1a6972157af12ca575fb7a0ce73c735c8fb0151334f0283fcc042a338a2cb6;Path=/;HttpOnly;SameSite=None;Secure;Domain=marketplacerp.azure.com strict-transport-security: - max-age=31536000; includeSubDomains transfer-encoding: @@ -153,7 +153,7 @@ interactions: x-ms-catalog-parameters: - eyJhZ3JlZW1lbnRUeXBlIjoiTW9kZXJuIiwiU3VwcG9ydGVkQ29udGVudFZlcnNpb24iOiIyMDE4LjA4LjMxLjAifQ== x-ms-version: - - 1.0.0.1691 (AzureUX-MarketPlaceRP:master.f122cda9c.210506-2349) + - 1.0.0.1674 (AzureUX-MarketPlaceRP:branch-from-1673.8d92b2415.210504-0130) x-powered-by: - ASP.NET x-xss-protection: @@ -176,8 +176,8 @@ interactions: - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags --name --resource-group User-Agent: - - python/3.8.8 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 - azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.23.0 (MSI) + - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 + azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.23.0 accept-language: - en-US method: GET @@ -185,7 +185,7 @@ interactions: response: body: string: '{"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient - privileges to complete the operation."},"requestId":"ec1a8ea9-2a88-4baf-9520-865a7aa0212d","date":"2021-05-13T13:06:37"}}' + privileges to complete the operation."},"requestId":"9f3a8731-4ca9-41ce-a1b9-f18bf506fa6e","date":"2021-05-14T03:35:26"}}' headers: access-control-allow-origin: - '*' @@ -198,19 +198,19 @@ interactions: dataserviceversion: - 3.0; date: - - Thu, 13 May 2021 13:06:37 GMT + - Fri, 14 May 2021 03:35:26 GMT duration: - - '1988174' + - '2467017' expires: - '-1' ocp-aad-diagnostics-server-name: - - //222BDHFCIsXRwfjzwfq6peF4DrVoWNzDYbHVqyG3g= + - vStVqzQot1HgIEgBpmUDU84aCb2v60XjAsipYT59v04= ocp-aad-session-key: - - FXGRc7l7baID1ikhzK0A9eeUL1LCJlbWZ40dYERy5mkGy9hJqYO2CJsGlMBnA3I00uqHMtDuLj74J7otgWBV6bSVKvldV8c-gYRCijtnFghsbfC4_1EqD9i7XOmdwiFC.bhVJC_L2KTon9Yxrrz7ak45_eJlrW6gK2Rv3hjwbajw + - Z0TUV3B5U7BUR1kXixX4RkryUC4DS7n_aDQX9lDnjqkFA-AEW27A8xOEWe2LAQ5FC9uELblEt0XfTL9phyC-ORAUxGBHI3l0NyQL-OUK4F5E74qQUU8adXX3sm0lIYnq.30BdBxxOj72n57D6m5FzQKsVEgEPVMkhgG5nk1l5xds pragma: - no-cache request-id: - - ec1a8ea9-2a88-4baf-9520-865a7aa0212d + - 9f3a8731-4ca9-41ce-a1b9-f18bf506fa6e strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -239,8 +239,8 @@ interactions: - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags --name --resource-group User-Agent: - - python/3.8.8 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 - azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.23.0 (MSI) + - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 + azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.23.0 accept-language: - en-US method: GET @@ -256,7 +256,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:06:37 GMT + - Fri, 14 May 2021 03:35:26 GMT expires: - '-1' pragma: @@ -291,8 +291,8 @@ interactions: - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags --name --resource-group User-Agent: - - python/3.8.8 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 - azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.23.0 (MSI) + - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 + azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.23.0 accept-language: - en-US method: GET @@ -310,7 +310,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:06:37 GMT + - Fri, 14 May 2021 03:35:26 GMT expires: - '-1' pragma: @@ -343,8 +343,8 @@ interactions: - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags --name --resource-group User-Agent: - - python/3.8.8 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 - azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.23.0 (MSI) + - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 + azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.23.0 accept-language: - en-US method: GET @@ -352,7 +352,7 @@ interactions: response: body: string: '{"odata.error":{"code":"Authorization_RequestDenied","message":{"lang":"en","value":"Insufficient - privileges to complete the operation."},"requestId":"09078f3d-9296-4073-8d06-c9695fcc3a5d","date":"2021-05-13T13:06:38"}}' + privileges to complete the operation."},"requestId":"1afbbe7b-bf53-40b7-9575-5a4c549222af","date":"2021-05-14T03:35:27"}}' headers: access-control-allow-origin: - '*' @@ -365,19 +365,19 @@ interactions: dataserviceversion: - 3.0; date: - - Thu, 13 May 2021 13:06:38 GMT + - Fri, 14 May 2021 03:35:27 GMT duration: - - '1743319' + - '2367515' expires: - '-1' ocp-aad-diagnostics-server-name: - - f8CAO034rA6+UoEEiSoNVMiuPxjAECsuLM/uuKgJfig= + - d8mJZj/FCXoCPHD8rwVx6YMmIBFyEzt5qVY/RE3ELLk= ocp-aad-session-key: - - CD5SXtl9cwXBFUbDQRgMhjBFJapnFU7YNSeWTwgVIRbFJ6FUcTIRCb8U69cSoJG9KCBdO3ieJRz0XN5u5XyPsm9tBCaki_cZXs3FCyTrAJ0s5v1FqvSxrpZ7VQSIsBzZ.4znAEO6TVSULz33ww0DRS0osBCvzonZx74pgnQuU0Nw + - qiJJ2awPcPR4CZ4H1bmL5hh5kKr-SXFF7AvfGugNYLfJSYPFtDfgFx1xIZm83A2rXUNTPr0aJUapkwBb6BawzT5mrfjxrPWMqTom00CgdC9EdiFY7mlZeGr9SOIzzxh2.O9RvxTZIlYRd8DSUa1M3VBJ3VDuG-AdAWYhn_atcSfc pragma: - no-cache request-id: - - 09078f3d-9296-4073-8d06-c9695fcc3a5d + - 1afbbe7b-bf53-40b7-9575-5a4c549222af strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -406,8 +406,8 @@ interactions: - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags --name --resource-group User-Agent: - - python/3.8.8 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 - azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.23.0 (MSI) + - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 + azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.23.0 accept-language: - en-US method: GET @@ -423,7 +423,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:06:38 GMT + - Fri, 14 May 2021 03:35:27 GMT expires: - '-1' pragma: @@ -458,8 +458,8 @@ interactions: - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags --name --resource-group User-Agent: - - python/3.8.8 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 - azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.23.0 (MSI) + - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 + azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.23.0 accept-language: - en-US method: GET @@ -477,7 +477,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:06:38 GMT + - Fri, 14 May 2021 03:35:27 GMT expires: - '-1' pragma: @@ -512,8 +512,8 @@ interactions: - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags --name --resource-group User-Agent: - - python/3.8.8 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 - azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.23.0 (MSI) + - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 + azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.23.0 accept-language: - en-US method: GET @@ -1138,7 +1138,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:06:38 GMT + - Fri, 14 May 2021 03:35:27 GMT expires: - '-1' pragma: @@ -1176,16 +1176,16 @@ interactions: - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags --name --resource-group User-Agent: - - python/3.8.8 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 - azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.23.0 (MSI) + - python/3.8.0 (Windows-10-10.0.19041-SP0) msrest/0.6.21 msrest_azure/0.6.3 + azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.23.0 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.User","objectType":"User","objectId":"e529c1e5-76ca-44a1-9176-61e364c62876","deletionTimestamp":null,"accountEnabled":true,"ageGroup":null,"assignedLicenses":[],"assignedPlans":[],"city":null,"companyName":null,"consentProvidedForMinor":null,"country":null,"createdDateTime":"2021-05-13T09:09:32Z","creationType":"Invitation","department":null,"dirSyncEnabled":null,"displayName":"Feng - Zhou","employeeId":null,"facsimileTelephoneNumber":null,"givenName":null,"immutableId":null,"isCompromised":null,"jobTitle":null,"lastDirSyncTime":null,"legalAgeGroupClassification":null,"mail":"feng.zhou@microsoft.com","mailNickname":"feng.zhou_microsoft.com#EXT#","mobile":null,"onPremisesDistinguishedName":null,"onPremisesSecurityIdentifier":null,"otherMails":["fenzhou@microsoft.com","feng.zhou@microsoft.com"],"passwordPolicies":null,"passwordProfile":null,"physicalDeliveryOfficeName":null,"postalCode":null,"preferredLanguage":null,"provisionedPlans":[],"provisioningErrors":[],"proxyAddresses":["SMTP:feng.zhou@microsoft.com"],"refreshTokensValidFromDateTime":"2021-05-13T09:09:32Z","showInAddressList":false,"signInNames":[],"sipProxyAddress":null,"state":null,"streetAddress":null,"surname":null,"telephoneNumber":null,"thumbnailPhoto@odata.mediaEditLink":"directoryObjects/e529c1e5-76ca-44a1-9176-61e364c62876/Microsoft.DirectoryServices.User/thumbnailPhoto","usageLocation":null,"userIdentities":[],"userPrincipalName":"feng.zhou_microsoft.com#EXT#@mpliftrconfluent20210809out.onmicrosoft.com","userState":"Accepted","userStateChangedOn":"2021-05-13T09:12:14Z","userType":"Guest"}]}' + string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects","value":[{"odata.type":"Microsoft.DirectoryServices.User","objectType":"User","objectId":"e529c1e5-76ca-44a1-9176-61e364c62876","deletionTimestamp":null,"accountEnabled":true,"ageGroup":null,"assignedLicenses":[],"assignedPlans":[],"city":null,"companyName":null,"consentProvidedForMinor":null,"country":null,"createdDateTime":"2021-05-13T09:09:32Z","creationType":"Invitation","department":null,"dirSyncEnabled":null,"displayName":"contoso + Zhou","employeeId":null,"facsimileTelephoneNumber":null,"givenName":null,"immutableId":null,"isCompromised":null,"jobTitle":null,"lastDirSyncTime":null,"legalAgeGroupClassification":null,"mail":"contoso@microsoft.com","mailNickname":"contoso_microsoft.com#EXT#","mobile":null,"onPremisesDistinguishedName":null,"onPremisesSecurityIdentifier":null,"otherMails":["fenzhou@microsoft.com","contoso@microsoft.com"],"passwordPolicies":null,"passwordProfile":null,"physicalDeliveryOfficeName":null,"postalCode":null,"preferredLanguage":null,"provisionedPlans":[],"provisioningErrors":[],"proxyAddresses":["SMTP:contoso@microsoft.com"],"refreshTokensValidFromDateTime":"2021-05-13T09:09:32Z","showInAddressList":false,"signInNames":[],"sipProxyAddress":null,"state":null,"streetAddress":null,"surname":null,"telephoneNumber":null,"thumbnailPhoto@odata.mediaEditLink":"directoryObjects/e529c1e5-76ca-44a1-9176-61e364c62876/Microsoft.DirectoryServices.User/thumbnailPhoto","usageLocation":null,"userIdentities":[],"userPrincipalName":"contoso_microsoft.com#EXT#@mpliftrconfluent20210809out.onmicrosoft.com","userState":"Accepted","userStateChangedOn":"2021-05-13T09:12:14Z","userType":"Guest"}]}' headers: access-control-allow-origin: - '*' @@ -1198,19 +1198,19 @@ interactions: dataserviceversion: - 3.0; date: - - Thu, 13 May 2021 13:06:39 GMT + - Fri, 14 May 2021 03:35:28 GMT duration: - - '1768210' + - '2365737' expires: - '-1' ocp-aad-diagnostics-server-name: - - XqLvwZUsYdFLData9GsvHwj3yekKou7GfPJtn4ccDYo= + - QWyfqJwmDXSNuE4g8+lFKXcZv4tHNEWcHkadFF2CG3E= ocp-aad-session-key: - - Ht3pinbDBb25ybHEmZF5o_id0y3c46xMtNA3gLiQC-6ZlEv4ZyKwWjqRpw8BvXcdWm1TiH_uzYuP9N0jNpA6jq2Mze2DoSROZG7NjC2BK0Z3zN_zOR4UPH2ovuvXob3n.reeFccaRCxgQn0XF9iYvU5RVhUaX2acCWPHzWkYkTqo + - eYnFB8EO8SCHT61d1rtAdXSMtgVp7ZcfqsqnHGHHbSK3uztz-t8c1eLR7LFqO43BNjU6lhCYOW3wojxEtW-5SGJW57FHJbFddho0UOzmj6yFu6FBcw-VzHSle5sQtc6D.vqT1sBK4HHh19DAlsq6LVgmO6jNSpPP-kuwQxa5RrrA pragma: - no-cache request-id: - - c90b0970-ab00-4407-a17f-bdccf534debe + - 5574a6af-4352-47c7-990f-540df0a03f5a strict-transport-security: - max-age=31536000; includeSubDomains x-aspnet-version: @@ -1228,8 +1228,8 @@ interactions: body: '{"tags": {"environment": "Dev"}, "location": "eastus2euap", "properties": {"offerDetail": {"publisherId": "confluentinc", "id": "confluent-cloud-azure-stag", "planId": "confluent-cloud-azure-payg-stag", "planName": "Confluent Cloud - - Pay as you Go", "termUnit": "P1M"}, "userDetail": {"firstName": "Feng", "lastName": - "Zhou", "emailAddress": "feng.zhou@microsoft.com"}}}' + Pay as you Go", "termUnit": "P1M"}, "userDetail": {"firstName": "contoso", "lastName": + "Zhou", "emailAddress": "contoso@microsoft.com"}}}' headers: Accept: - application/json @@ -1247,16 +1247,16 @@ interactions: - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags --name --resource-group User-Agent: - - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) + - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: PUT uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-13T13:06:44.2048077Z","provisioningState":"Accepted","organizationId":null,"ssoUrl":null,"offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent - Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Feng","lastName":"Zhou","emailAddress":"feng.zhou@microsoft.com"}}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-14T03:35:35.7918712Z","provisioningState":"Accepted","organizationId":null,"ssoUrl":null,"offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"contoso","lastName":"Zhou","emailAddress":"contoso@microsoft.com"}}}' headers: azure-asyncoperation: - - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/12881a63-b672-44a1-96bb-8acc7470931e?api-version=2020-03-01-preview + - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/19c1ae1c-df6b-49ae-8e83-7b97dbb5ad6e?api-version=2020-03-01-preview cache-control: - no-cache content-length: @@ -1264,13 +1264,13 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:06:46 GMT + - Fri, 14 May 2021 03:35:37 GMT etag: - - '"0e009f0a-0000-3400-0000-609d24650000"' + - '"0e007927-0000-3400-0000-609df0070000"' expires: - '-1' location: - - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/12881a63-b672-44a1-96bb-8acc7470931e?api-version=2020-03-01-preview + - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/19c1ae1c-df6b-49ae-8e83-7b97dbb5ad6e?api-version=2020-03-01-preview pragma: - no-cache request-context: @@ -1282,7 +1282,7 @@ interactions: x-ms-providerhub-traffic: - 'True' x-ms-ratelimit-remaining-subscription-writes: - - '1196' + - '1199' status: code: 201 message: Created @@ -1301,23 +1301,23 @@ interactions: - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags --name --resource-group User-Agent: - - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) + - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/12881a63-b672-44a1-96bb-8acc7470931e?api-version=2020-03-01-preview + uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/19c1ae1c-df6b-49ae-8e83-7b97dbb5ad6e?api-version=2020-03-01-preview response: body: - string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/12881a63-b672-44a1-96bb-8acc7470931e","name":"12881a63-b672-44a1-96bb-8acc7470931e","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","status":"Succeeded","startTime":"2021-05-13T13:06:44.1311974Z","endTime":"2021-05-13T13:07:15.0545277Z","error":{},"properties":null}' + string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/19c1ae1c-df6b-49ae-8e83-7b97dbb5ad6e","name":"19c1ae1c-df6b-49ae-8e83-7b97dbb5ad6e","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","status":"Succeeded","startTime":"2021-05-14T03:35:35.732173Z","endTime":"2021-05-14T03:36:07.9089691Z","error":{},"properties":null}' headers: cache-control: - no-cache content-length: - - '509' + - '508' content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:07:16 GMT + - Fri, 14 May 2021 03:36:08 GMT etag: - - '"0200282a-0000-3400-0000-609d24830000"' + - '"0200b1ac-0000-3400-0000-609df0270000"' expires: - '-1' pragma: @@ -1348,13 +1348,13 @@ interactions: - --location --offer-id --plan-id --plan-name --publisher-id --term-unit --tags --name --resource-group User-Agent: - - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) + - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-13T13:06:44.2048077Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent - Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Feng","lastName":"Zhou","emailAddress":"feng.zhou@microsoft.com"},"organizationId":"8994071a-6089-45ca-99bf-a6ae5ed0c12a","ssoUrl":"https://stag.cpdev.cloud/login/sso/8994071a-6089-45ca-99bf-a6ae5ed0c12a"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-14T03:35:35.7918712Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"contoso","lastName":"Zhou","emailAddress":"contoso@microsoft.com"},"organizationId":"e910acdf-8e65-42c6-878f-e7cb8ab8dfe0","ssoUrl":"https://stag.cpdev.cloud/login/sso/e910acdf-8e65-42c6-878f-e7cb8ab8dfe0"}}' headers: cache-control: - no-cache @@ -1363,9 +1363,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:07:16 GMT + - Fri, 14 May 2021 03:36:09 GMT etag: - - '"0e00a50a-0000-3400-0000-609d24830000"' + - '"0e007f27-0000-3400-0000-609df0280000"' expires: - '-1' pragma: @@ -1397,13 +1397,13 @@ interactions: ParameterSetName: - --created --name --resource-group User-Agent: - - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) + - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-13T13:06:44.2048077Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent - Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Feng","lastName":"Zhou","emailAddress":"feng.zhou@microsoft.com"},"organizationId":"8994071a-6089-45ca-99bf-a6ae5ed0c12a","ssoUrl":"https://stag.cpdev.cloud/login/sso/8994071a-6089-45ca-99bf-a6ae5ed0c12a"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-14T03:35:35.7918712Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"contoso","lastName":"Zhou","emailAddress":"contoso@microsoft.com"},"organizationId":"e910acdf-8e65-42c6-878f-e7cb8ab8dfe0","ssoUrl":"https://stag.cpdev.cloud/login/sso/e910acdf-8e65-42c6-878f-e7cb8ab8dfe0"}}' headers: cache-control: - no-cache @@ -1412,9 +1412,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:07:19 GMT + - Fri, 14 May 2021 03:36:10 GMT etag: - - '"0e00a50a-0000-3400-0000-609d24830000"' + - '"0e007f27-0000-3400-0000-609df0280000"' expires: - '-1' pragma: @@ -1446,13 +1446,13 @@ interactions: ParameterSetName: - --name --resource-group User-Agent: - - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) + - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-13T13:06:44.2048077Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent - Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Feng","lastName":"Zhou","emailAddress":"feng.zhou@microsoft.com"},"organizationId":"8994071a-6089-45ca-99bf-a6ae5ed0c12a","ssoUrl":"https://stag.cpdev.cloud/login/sso/8994071a-6089-45ca-99bf-a6ae5ed0c12a"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-14T03:35:35.7918712Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"contoso","lastName":"Zhou","emailAddress":"contoso@microsoft.com"},"organizationId":"e910acdf-8e65-42c6-878f-e7cb8ab8dfe0","ssoUrl":"https://stag.cpdev.cloud/login/sso/e910acdf-8e65-42c6-878f-e7cb8ab8dfe0"}}' headers: cache-control: - no-cache @@ -1461,9 +1461,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:07:20 GMT + - Fri, 14 May 2021 03:36:11 GMT etag: - - '"0e00a50a-0000-3400-0000-609d24830000"' + - '"0e007f27-0000-3400-0000-609df0280000"' expires: - '-1' pragma: @@ -1495,13 +1495,13 @@ interactions: ParameterSetName: - --resource-group User-Agent: - - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) + - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations?api-version=2020-03-01-preview response: body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-13T13:06:44.2048077Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent - Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Feng","lastName":"Zhou","emailAddress":"feng.zhou@microsoft.com"},"organizationId":"8994071a-6089-45ca-99bf-a6ae5ed0c12a","ssoUrl":"https://stag.cpdev.cloud/login/sso/8994071a-6089-45ca-99bf-a6ae5ed0c12a"}}]}' + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-14T03:35:35.7918712Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"contoso","lastName":"Zhou","emailAddress":"contoso@microsoft.com"},"organizationId":"e910acdf-8e65-42c6-878f-e7cb8ab8dfe0","ssoUrl":"https://stag.cpdev.cloud/login/sso/e910acdf-8e65-42c6-878f-e7cb8ab8dfe0"}}]}' headers: cache-control: - no-cache @@ -1510,7 +1510,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:07:22 GMT + - Fri, 14 May 2021 03:36:12 GMT expires: - '-1' pragma: @@ -1542,7 +1542,7 @@ interactions: ParameterSetName: - -g User-Agent: - - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) + - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Confluent/organizations?api-version=2020-03-01-preview response: @@ -1550,8 +1550,8 @@ interactions: string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rohit-test/providers/Microsoft.Confluent/organizations/EmailExists-Test","name":"EmailExists-Test","type":"microsoft.confluent/organizations","location":"westcentralus","tags":{},"properties":{"createdTime":"2021-05-07T09:30:31.6227005Z","provisioningState":"Failed","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-prod","planId":"confluent-cloud-azure-payg-prod","planName":"Confluent Cloud - Pay as you Go","termUnit":"P1M","status":"Failed"},"userDetail":{"firstName":"Liftr","lastName":"Confluent","emailAddress":"mp_liftrconfluent_20210809@outlook.com"}}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rohit-test/providers/Microsoft.Confluent/organizations/saas-cleanup-test-1","name":"saas-cleanup-test-1","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{},"properties":{"createdTime":"2021-05-12T06:45:05.0325812Z","provisioningState":"Failed","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent Cloud - Pay as you Go","termUnit":"P1M","status":"Failed"},"userDetail":{"firstName":"Rohit","lastName":"Anand","emailAddress":"rohanand@microsoft.com"}}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rohit-test/providers/Microsoft.Confluent/organizations/saas-cleanup-happy","name":"saas-cleanup-happy","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{},"properties":{"createdTime":"2021-05-12T08:06:17.2917712Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent - Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Rohit","lastName":"Anand","emailAddress":"rohanand@microsoft.com"},"organizationId":"b1ddb93a-aace-4813-8051-19eef4662fc6","ssoUrl":"https://stag.cpdev.cloud/login/sso/b1ddb93a-aace-4813-8051-19eef4662fc6"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-13T13:06:44.2048077Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent - Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Feng","lastName":"Zhou","emailAddress":"feng.zhou@microsoft.com"},"organizationId":"8994071a-6089-45ca-99bf-a6ae5ed0c12a","ssoUrl":"https://stag.cpdev.cloud/login/sso/8994071a-6089-45ca-99bf-a6ae5ed0c12a"}}]}' + Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Rohit","lastName":"Anand","emailAddress":"rohanand@microsoft.com"},"organizationId":"b1ddb93a-aace-4813-8051-19eef4662fc6","ssoUrl":"https://stag.cpdev.cloud/login/sso/b1ddb93a-aace-4813-8051-19eef4662fc6"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-14T03:35:35.7918712Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"contoso","lastName":"Zhou","emailAddress":"contoso@microsoft.com"},"organizationId":"e910acdf-8e65-42c6-878f-e7cb8ab8dfe0","ssoUrl":"https://stag.cpdev.cloud/login/sso/e910acdf-8e65-42c6-878f-e7cb8ab8dfe0"}}]}' headers: cache-control: - no-cache @@ -1560,7 +1560,7 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:07:24 GMT + - Fri, 14 May 2021 03:36:14 GMT expires: - '-1' pragma: @@ -1572,8 +1572,8 @@ interactions: x-content-type-options: - nosniff x-ms-original-request-ids: - - 140e7aee-ff38-4ef6-87c7-96a397c92bae - - ba79c132-4c3d-4882-9bb5-f2e8109f1233 + - a4fc6a5d-17a5-4cd4-ba15-fde114a918ea + - 57ca7fee-fc0d-4ad0-a002-a2f8fbfda975 status: code: 200 message: OK @@ -1595,13 +1595,13 @@ interactions: ParameterSetName: - --tags --name --resource-group User-Agent: - - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) + - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: PATCH uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview response: body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"client":"dev-client","env":"dev"},"properties":{"createdTime":"2021-05-13T13:06:44.2048077Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent - Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"Feng","lastName":"Zhou","emailAddress":"feng.zhou@microsoft.com"},"organizationId":"8994071a-6089-45ca-99bf-a6ae5ed0c12a","ssoUrl":"https://stag.cpdev.cloud/login/sso/8994071a-6089-45ca-99bf-a6ae5ed0c12a"}}' + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"client":"dev-client","env":"dev"},"properties":{"createdTime":"2021-05-14T03:35:35.7918712Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent + Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"contoso","lastName":"Zhou","emailAddress":"contoso@microsoft.com"},"organizationId":"e910acdf-8e65-42c6-878f-e7cb8ab8dfe0","ssoUrl":"https://stag.cpdev.cloud/login/sso/e910acdf-8e65-42c6-878f-e7cb8ab8dfe0"}}' headers: cache-control: - no-cache @@ -1610,9 +1610,9 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:07:28 GMT + - Fri, 14 May 2021 03:36:17 GMT etag: - - '"0e00a60a-0000-3400-0000-609d248e0000"' + - '"0e008027-0000-3400-0000-609df0300000"' expires: - '-1' pragma: @@ -1648,7 +1648,7 @@ interactions: ParameterSetName: - -y --name --resource-group User-Agent: - - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) + - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: DELETE uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview response: @@ -1662,13 +1662,13 @@ interactions: content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:07:30 GMT + - Fri, 14 May 2021 03:36:19 GMT etag: - - '"0e00a70a-0000-3400-0000-609d24920000"' + - '"0e008127-0000-3400-0000-609df0330000"' expires: - '-1' location: - - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/bdd6786d-b73d-49a2-8edf-30a28b84de44?api-version=2020-03-01-preview + - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a?api-version=2020-03-01-preview pragma: - no-cache request-context: @@ -1680,7 +1680,7 @@ interactions: x-ms-providerhub-traffic: - 'True' x-ms-ratelimit-remaining-subscription-deletes: - - '14998' + - '14999' status: code: 202 message: Accepted @@ -1698,23 +1698,107 @@ interactions: ParameterSetName: - -y --name --resource-group User-Agent: - - AZURECLI/2.23.0 (MSI) azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.8 (Windows-10-10.0.19041-SP0) + - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/bdd6786d-b73d-49a2-8edf-30a28b84de44?api-version=2020-03-01-preview + uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a?api-version=2020-03-01-preview response: body: - string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/bdd6786d-b73d-49a2-8edf-30a28b84de44","name":"bdd6786d-b73d-49a2-8edf-30a28b84de44","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","status":"Succeeded","startTime":"2021-05-13T13:07:30.3536496Z","endTime":"2021-05-13T13:07:42.0055398Z","error":{},"properties":null}' + string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a","name":"cbd69d06-55cc-4942-b484-e8b36672fc7a","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","status":"Deleting","startTime":"2021-05-14T03:36:19.763896Z"}' headers: cache-control: - no-cache content-length: - - '509' + - '437' content-type: - application/json; charset=utf-8 date: - - Thu, 13 May 2021 13:08:00 GMT + - Fri, 14 May 2021 03:36:50 GMT etag: - - '"02002d2a-0000-3400-0000-609d249e0000"' + - '"0200b2ac-0000-3400-0000-609df0330000"' + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - confluent organization delete + Connection: + - keep-alive + ParameterSetName: + - -y --name --resource-group + User-Agent: + - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a?api-version=2020-03-01-preview + response: + body: + string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a","name":"cbd69d06-55cc-4942-b484-e8b36672fc7a","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","status":"Deleting","startTime":"2021-05-14T03:36:19.763896Z"}' + headers: + cache-control: + - no-cache + content-length: + - '437' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 14 May 2021 03:37:20 GMT + etag: + - '"0200b2ac-0000-3400-0000-609df0330000"' + expires: + - '-1' + pragma: + - no-cache + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + status: + code: 202 + message: Accepted +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + CommandName: + - confluent organization delete + Connection: + - keep-alive + ParameterSetName: + - -y --name --resource-group + User-Agent: + - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) + method: GET + uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a?api-version=2020-03-01-preview + response: + body: + string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a","name":"cbd69d06-55cc-4942-b484-e8b36672fc7a","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","status":"Succeeded","startTime":"2021-05-14T03:36:19.763896Z","endTime":"2021-05-14T03:37:31.5089629Z","error":{},"properties":null}' + headers: + cache-control: + - no-cache + content-length: + - '508' + content-type: + - application/json; charset=utf-8 + date: + - Fri, 14 May 2021 03:37:50 GMT + etag: + - '"020004ad-0000-3400-0000-609df07b0000"' expires: - '-1' pragma: diff --git a/src/confluent/azext_confluent/tests/latest/test_confluent_scenario.py b/src/confluent/azext_confluent/tests/latest/test_confluent_scenario.py index b7daf10b821..8184ba4d142 100644 --- a/src/confluent/azext_confluent/tests/latest/test_confluent_scenario.py +++ b/src/confluent/azext_confluent/tests/latest/test_confluent_scenario.py @@ -8,11 +8,13 @@ # regenerated. # -------------------------------------------------------------------------- +import jwt +import mock import os +import azure.cli.command_modules.role.custom from azure.cli.testsdk import ScenarioTest from azure.cli.testsdk import ResourceGroupPreparer from .example_steps import step_terms_list -from .example_steps import step_organization_create from .example_steps import step_organization_show from .example_steps import step_organization_list from .example_steps import step_organization_list2 @@ -38,6 +40,53 @@ def step_offer_detail_show(test, rg, checks=None): checks=checks) +orig_decode = jwt.decode + + +def mock_jwt_decode(jwt_str, **kwargs): + if jwt_str == 'top-secret-token-for-you': + return { + 'given_name': 'contoso', + 'family_name': 'zhou', + 'email': 'contoso@microsoft.com', + 'oid': '00000000-0000-0000-0000-000000000000' + } + else: + return orig_decode(jwt_str, **kwargs) + + +orig_list_role = azure.cli.command_modules.role.custom.list_role_assignments + + +def mock_list_role_assignments(cmd, **kwargs): + if kwargs['assignee'] == '00000000-0000-0000-0000-000000000000': + return [{}] # mock it to pass non-empty check + else: + return orig_list_role(cmd, **kwargs) + + +def step_organization_create(test, rg, checks=None): + if checks is None: + checks = [] + with mock.patch('jwt.decode', mock_jwt_decode): + with mock.patch('azure.cli.command_modules.role.custom.list_role_assignments', mock_list_role_assignments): + test.cmd('az confluent organization create ' + '--location "eastus2euap" ' + '--offer-id "confluent-cloud-azure-stag" ' + '--plan-id "confluent-cloud-azure-payg-stag" ' + '--plan-name "Confluent Cloud - Pay as you Go" ' + '--publisher-id "confluentinc" ' + '--term-unit "P1M" ' + '--tags environment="Dev" ' + '--name "{myOrganization}" ' + '--resource-group "{rg}"', + checks=checks) + test.cmd('az confluent organization wait --created ' + '--name "{myOrganization}" ' + '--resource-group "{rg}"', + checks=[]) + + # Env setup_scenario @try_manual def setup_scenario(test, rg): @@ -62,16 +111,18 @@ def call_scenario(test, rg): ]) step_organization_create(test, rg, checks=[ test.check("location", "eastus2euap", case_sensitive=False), - test.check("userDetail.emailAddress", "feng.zhou@microsoft.com", case_sensitive=False), - test.check("userDetail.firstName", "feng", case_sensitive=False), + # change to real values for userDetail in live tests + test.check("userDetail.emailAddress", "contoso@microsoft.com", case_sensitive=False), + test.check("userDetail.firstName", "contoso", case_sensitive=False), test.check("userDetail.lastName", "zhou", case_sensitive=False), test.check("tags.environment", "Dev", case_sensitive=False), test.check("name", "{myOrganization}", case_sensitive=False), ]) step_organization_show(test, rg, checks=[ test.check("location", "eastus2euap", case_sensitive=False), - test.check("userDetail.emailAddress", "feng.zhou@microsoft.com", case_sensitive=False), - test.check("userDetail.firstName", "feng", case_sensitive=False), + # change to real values for userDetail in live tests + test.check("userDetail.emailAddress", "contoso@microsoft.com", case_sensitive=False), + test.check("userDetail.firstName", "contoso", case_sensitive=False), test.check("userDetail.lastName", "zhou", case_sensitive=False), test.check("tags.environment", "Dev", case_sensitive=False), test.check("name", "{myOrganization}", case_sensitive=False), @@ -84,8 +135,8 @@ def call_scenario(test, rg): ]) step_organization_update(test, rg, checks=[ test.check("location", "eastus2euap", case_sensitive=False), - test.check("userDetail.emailAddress", "feng.zhou@microsoft.com", case_sensitive=False), - test.check("userDetail.firstName", "feng", case_sensitive=False), + test.check("userDetail.emailAddress", "contoso@microsoft.com", case_sensitive=False), + test.check("userDetail.firstName", "contoso", case_sensitive=False), test.check("userDetail.lastName", "zhou", case_sensitive=False), test.check("name", "{myOrganization}", case_sensitive=False), test.check("tags.client", "dev-client", case_sensitive=False), diff --git a/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md b/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md index 7abfcec837c..451a883a9e7 100644 --- a/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md +++ b/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md @@ -1,9 +1,8 @@ |Scenario|Result|ErrorMessage|ErrorStack|ErrorNormalized|StartDt|EndDt| -|step_terms_list|successed||||2021-05-13 13:06:33.845437|2021-05-13 13:06:35.292435| -|step_organization_create|successed||||2021-05-13 13:06:37.018506|2021-05-13 13:07:20.376307| -|step_organization_show|successed||||2021-05-13 13:07:20.376307|2021-05-13 13:07:21.696726| -|step_organization_list|successed||||2021-05-13 13:07:21.697724|2021-05-13 13:07:23.250472| -|step_organization_list2|successed||||2021-05-13 13:07:23.250472|2021-05-13 13:07:24.680806| -|step_organization_update|successed||||2021-05-13 13:07:24.680806|2021-05-13 13:07:29.103602| -|step_organization_delete|successed||||2021-05-13 13:07:29.104591|2021-05-13 13:08:01.324778| -Coverage: 7/7 +|step_terms_list|successed||||2021-05-14 03:45:43.298623|2021-05-14 03:45:43.532016| +|step_organization_show|successed||||2021-05-14 03:45:43.942015|2021-05-14 03:45:44.069903| +|step_organization_list|successed||||2021-05-14 03:45:44.069903|2021-05-14 03:45:44.205902| +|step_organization_list2|successed||||2021-05-14 03:45:44.205902|2021-05-14 03:45:44.324900| +|step_organization_update|successed||||2021-05-14 03:45:44.324900|2021-05-14 03:45:44.447902| +|step_organization_delete|successed||||2021-05-14 03:45:44.447902|2021-05-14 03:45:44.891955| +Coverage: 6/6 From e744ad0bd5bd3bedc0a41ba409dad105987e1dcf Mon Sep 17 00:00:00 2001 From: Feng Zhou Date: Mon, 24 May 2021 15:40:34 +0800 Subject: [PATCH 4/8] update sdk --- .../azext_confluent/manual/custom.py | 6 +- .../recordings/test_confluent_Scenario.yaml | 32 +- .../test_confluent_scenario_coverage.md | 12 +- .../vendored_sdks/confluent/_configuration.py | 2 +- .../confluent/_confluent_management_client.py | 5 + .../confluent/aio/_configuration.py | 2 +- .../aio/_confluent_management_client.py | 5 + .../confluent/aio/operations/__init__.py | 2 + .../_marketplace_agreements_operations.py | 4 +- .../operations/_organization_operations.py | 12 +- .../_organization_operations_operations.py | 2 +- .../aio/operations/_validations_operations.py | 110 +++++++ .../confluent/models/__init__.py | 17 +- .../_confluent_management_client_enums.py | 9 + .../vendored_sdks/confluent/models/_models.py | 278 +++++----------- .../confluent/models/_models_py3.py | 302 ++++++------------ .../confluent/operations/__init__.py | 2 + .../_marketplace_agreements_operations.py | 4 +- .../operations/_organization_operations.py | 12 +- .../_organization_operations_operations.py | 2 +- .../operations/_validations_operations.py | 115 +++++++ 21 files changed, 475 insertions(+), 460 deletions(-) create mode 100644 src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_validations_operations.py create mode 100644 src/confluent/azext_confluent/vendored_sdks/confluent/operations/_validations_operations.py diff --git a/src/confluent/azext_confluent/manual/custom.py b/src/confluent/azext_confluent/manual/custom.py index d4aa7d879d8..f849949b057 100644 --- a/src/confluent/azext_confluent/manual/custom.py +++ b/src/confluent/azext_confluent/manual/custom.py @@ -37,7 +37,7 @@ def confluent_organization_create(cmd, body['user_detail']['email_address'] = decode['email'] if 'email' in decode else decode['unique_name'] except KeyError as ex: raise Exception(f'Cannot create the organization as CLI cannot get the right value for {str(ex)} from access ' - 'token.') + 'token.') from ex # Check owner or contributor role of subscription user_object_id = decode['oid'] @@ -111,7 +111,7 @@ def confluent_offer_detail_show(cmd, publisher_id=None, offer_id=None): 'planName': plan['displayName'], 'termUnits':[item for a in plan['availabilities'] for item in a['terms']] } for plan in plans] - except KeyError: - raise ArgumentUsageError('Not able to get offer details for the provided publisher id and offer id.') + except KeyError as ex: + raise ArgumentUsageError('Not able to get offer details for the provided publisher id and offer id.') from ex return plans diff --git a/src/confluent/azext_confluent/tests/latest/recordings/test_confluent_Scenario.yaml b/src/confluent/azext_confluent/tests/latest/recordings/test_confluent_Scenario.yaml index 151f36b732f..f2cbcece889 100644 --- a/src/confluent/azext_confluent/tests/latest/recordings/test_confluent_Scenario.yaml +++ b/src/confluent/azext_confluent/tests/latest/recordings/test_confluent_Scenario.yaml @@ -13,7 +13,7 @@ interactions: User-Agent: - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Confluent/agreements?api-version=2020-03-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Confluent/agreements?api-version=2021-03-01-preview response: body: string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Confluent/agreements/marketplace","name":"marketplace","type":"Microsoft.Confluent/agreements","properties":{"publisher":"Microsoft","product":"Marketplace","plan":"Marketplace","licenseTextLink":"https://azure.microsoft.com/en-us/support/legal/marketplace-terms/","privacyPolicyLink":"http://www.microsoft.com/privacy","retrieveDatetime":null,"signature":"","accepted":false}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Confluent/agreements/default","name":"confluent","type":"Microsoft.Confluent/offertypes","properties":{"publisher":"Confluent","product":"Marketplace","plan":"Confluent","licenseTextLink":"https://www.confluent.io/marketplace-terms-of-service/","privacyPolicyLink":"https://assets.confluent.io/m/1353b6c3146e5feb/original/20200911-Confluent_Privacy_Statement.pdf","retrieveDatetime":null,"signature":"","accepted":false}}]}' @@ -1249,14 +1249,14 @@ interactions: User-Agent: - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2021-03-01-preview response: body: string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-14T03:35:35.7918712Z","provisioningState":"Accepted","organizationId":null,"ssoUrl":null,"offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent Cloud - Pay as you Go","termUnit":"P1M","status":"Started"},"userDetail":{"firstName":"contoso","lastName":"Zhou","emailAddress":"contoso@microsoft.com"}}}' headers: azure-asyncoperation: - - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/19c1ae1c-df6b-49ae-8e83-7b97dbb5ad6e?api-version=2020-03-01-preview + - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/19c1ae1c-df6b-49ae-8e83-7b97dbb5ad6e?api-version=2021-03-01-preview cache-control: - no-cache content-length: @@ -1270,7 +1270,7 @@ interactions: expires: - '-1' location: - - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/19c1ae1c-df6b-49ae-8e83-7b97dbb5ad6e?api-version=2020-03-01-preview + - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/19c1ae1c-df6b-49ae-8e83-7b97dbb5ad6e?api-version=2021-03-01-preview pragma: - no-cache request-context: @@ -1303,7 +1303,7 @@ interactions: User-Agent: - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/19c1ae1c-df6b-49ae-8e83-7b97dbb5ad6e?api-version=2020-03-01-preview + uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/19c1ae1c-df6b-49ae-8e83-7b97dbb5ad6e?api-version=2021-03-01-preview response: body: string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/19c1ae1c-df6b-49ae-8e83-7b97dbb5ad6e","name":"19c1ae1c-df6b-49ae-8e83-7b97dbb5ad6e","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","status":"Succeeded","startTime":"2021-05-14T03:35:35.732173Z","endTime":"2021-05-14T03:36:07.9089691Z","error":{},"properties":null}' @@ -1350,7 +1350,7 @@ interactions: User-Agent: - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2021-03-01-preview response: body: string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-14T03:35:35.7918712Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent @@ -1399,7 +1399,7 @@ interactions: User-Agent: - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2021-03-01-preview response: body: string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-14T03:35:35.7918712Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent @@ -1448,7 +1448,7 @@ interactions: User-Agent: - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2021-03-01-preview response: body: string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-14T03:35:35.7918712Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent @@ -1497,7 +1497,7 @@ interactions: User-Agent: - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations?api-version=2020-03-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations?api-version=2021-03-01-preview response: body: string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"environment":"Dev"},"properties":{"createdTime":"2021-05-14T03:35:35.7918712Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent @@ -1544,7 +1544,7 @@ interactions: User-Agent: - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Confluent/organizations?api-version=2020-03-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Confluent/organizations?api-version=2021-03-01-preview response: body: string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rohit-test/providers/Microsoft.Confluent/organizations/EmailExists-Test","name":"EmailExists-Test","type":"microsoft.confluent/organizations","location":"westcentralus","tags":{},"properties":{"createdTime":"2021-05-07T09:30:31.6227005Z","provisioningState":"Failed","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-prod","planId":"confluent-cloud-azure-payg-prod","planName":"Confluent @@ -1597,7 +1597,7 @@ interactions: User-Agent: - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: PATCH - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2021-03-01-preview response: body: string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","name":"cliTestOrg","type":"microsoft.confluent/organizations","location":"eastus2euap","tags":{"client":"dev-client","env":"dev"},"properties":{"createdTime":"2021-05-14T03:35:35.7918712Z","provisioningState":"Succeeded","offerDetail":{"publisherId":"confluentinc","id":"confluent-cloud-azure-stag","planId":"confluent-cloud-azure-payg-stag","planName":"Confluent @@ -1650,7 +1650,7 @@ interactions: User-Agent: - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: DELETE - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2020-03-01-preview + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg?api-version=2021-03-01-preview response: body: string: 'null' @@ -1668,7 +1668,7 @@ interactions: expires: - '-1' location: - - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a?api-version=2020-03-01-preview + - https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a?api-version=2021-03-01-preview pragma: - no-cache request-context: @@ -1700,7 +1700,7 @@ interactions: User-Agent: - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a?api-version=2020-03-01-preview + uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a?api-version=2021-03-01-preview response: body: string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a","name":"cbd69d06-55cc-4942-b484-e8b36672fc7a","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","status":"Deleting","startTime":"2021-05-14T03:36:19.763896Z"}' @@ -1742,7 +1742,7 @@ interactions: User-Agent: - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a?api-version=2020-03-01-preview + uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a?api-version=2021-03-01-preview response: body: string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a","name":"cbd69d06-55cc-4942-b484-e8b36672fc7a","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","status":"Deleting","startTime":"2021-05-14T03:36:19.763896Z"}' @@ -1784,7 +1784,7 @@ interactions: User-Agent: - AZURECLI/2.23.0 azsdk-python-mgmt-confluent/1.0.0b1 Python/3.8.0 (Windows-10-10.0.19041-SP0) method: GET - uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a?api-version=2020-03-01-preview + uri: https://management.azure.com/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a?api-version=2021-03-01-preview response: body: string: '{"id":"/providers/Microsoft.Confluent/locations/EASTUS2EUAP/operationStatuses/cbd69d06-55cc-4942-b484-e8b36672fc7a","name":"cbd69d06-55cc-4942-b484-e8b36672fc7a","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Confluent/organizations/cliTestOrg","status":"Succeeded","startTime":"2021-05-14T03:36:19.763896Z","endTime":"2021-05-14T03:37:31.5089629Z","error":{},"properties":null}' diff --git a/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md b/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md index 451a883a9e7..b77602afc5b 100644 --- a/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md +++ b/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md @@ -1,8 +1,8 @@ |Scenario|Result|ErrorMessage|ErrorStack|ErrorNormalized|StartDt|EndDt| -|step_terms_list|successed||||2021-05-14 03:45:43.298623|2021-05-14 03:45:43.532016| -|step_organization_show|successed||||2021-05-14 03:45:43.942015|2021-05-14 03:45:44.069903| -|step_organization_list|successed||||2021-05-14 03:45:44.069903|2021-05-14 03:45:44.205902| -|step_organization_list2|successed||||2021-05-14 03:45:44.205902|2021-05-14 03:45:44.324900| -|step_organization_update|successed||||2021-05-14 03:45:44.324900|2021-05-14 03:45:44.447902| -|step_organization_delete|successed||||2021-05-14 03:45:44.447902|2021-05-14 03:45:44.891955| +|step_terms_list|successed||||2021-05-24 07:38:55.834022|2021-05-24 07:38:55.963383| +|step_organization_show|successed||||2021-05-24 07:38:56.149089|2021-05-24 07:38:56.202278| +|step_organization_list|successed||||2021-05-24 07:38:56.202490|2021-05-24 07:38:56.259075| +|step_organization_list2|successed||||2021-05-24 07:38:56.259292|2021-05-24 07:38:56.313915| +|step_organization_update|successed||||2021-05-24 07:38:56.314167|2021-05-24 07:38:56.367895| +|step_organization_delete|successed||||2021-05-24 07:38:56.368122|2021-05-24 07:38:56.538469| Coverage: 6/6 diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/_configuration.py b/src/confluent/azext_confluent/vendored_sdks/confluent/_configuration.py index d9022ac8658..0b48dbf156a 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/_configuration.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/_configuration.py @@ -48,7 +48,7 @@ def __init__( self.credential = credential self.subscription_id = subscription_id - self.api_version = "2020-03-01-preview" + self.api_version = "2021-03-01-preview" self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) kwargs.setdefault('sdk_moniker', 'mgmt-confluent/{}'.format(VERSION)) self._configure(**kwargs) diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/_confluent_management_client.py b/src/confluent/azext_confluent/vendored_sdks/confluent/_confluent_management_client.py index fc81920ed8f..1510fb4645f 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/_confluent_management_client.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/_confluent_management_client.py @@ -21,6 +21,7 @@ from .operations import MarketplaceAgreementsOperations from .operations import OrganizationOperationsOperations from .operations import OrganizationOperations +from .operations import ValidationsOperations from . import models @@ -33,6 +34,8 @@ class ConfluentManagementClient(object): :vartype organization_operations: azure.mgmt.confluent.operations.OrganizationOperationsOperations :ivar organization: OrganizationOperations operations :vartype organization: azure.mgmt.confluent.operations.OrganizationOperations + :ivar validations: ValidationsOperations operations + :vartype validations: azure.mgmt.confluent.operations.ValidationsOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials.TokenCredential :param subscription_id: Microsoft Azure subscription id. @@ -65,6 +68,8 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.organization = OrganizationOperations( self._client, self._config, self._serialize, self._deserialize) + self.validations = ValidationsOperations( + self._client, self._config, self._serialize, self._deserialize) def close(self): # type: () -> None diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/_configuration.py b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/_configuration.py index d17bb6d7dbc..c963369cfd9 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/_configuration.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/_configuration.py @@ -45,7 +45,7 @@ def __init__( self.credential = credential self.subscription_id = subscription_id - self.api_version = "2020-03-01-preview" + self.api_version = "2021-03-01-preview" self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) kwargs.setdefault('sdk_moniker', 'mgmt-confluent/{}'.format(VERSION)) self._configure(**kwargs) diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/_confluent_management_client.py b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/_confluent_management_client.py index 5a165e6d2dc..22f9f0f6696 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/_confluent_management_client.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/_confluent_management_client.py @@ -19,6 +19,7 @@ from .operations import MarketplaceAgreementsOperations from .operations import OrganizationOperationsOperations from .operations import OrganizationOperations +from .operations import ValidationsOperations from .. import models @@ -31,6 +32,8 @@ class ConfluentManagementClient(object): :vartype organization_operations: azure.mgmt.confluent.aio.operations.OrganizationOperationsOperations :ivar organization: OrganizationOperations operations :vartype organization: azure.mgmt.confluent.aio.operations.OrganizationOperations + :ivar validations: ValidationsOperations operations + :vartype validations: azure.mgmt.confluent.aio.operations.ValidationsOperations :param credential: Credential needed for the client to connect to Azure. :type credential: ~azure.core.credentials_async.AsyncTokenCredential :param subscription_id: Microsoft Azure subscription id. @@ -62,6 +65,8 @@ def __init__( self._client, self._config, self._serialize, self._deserialize) self.organization = OrganizationOperations( self._client, self._config, self._serialize, self._deserialize) + self.validations = ValidationsOperations( + self._client, self._config, self._serialize, self._deserialize) async def close(self) -> None: await self._client.close() diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/__init__.py b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/__init__.py index a48992bda8e..e07bcdedfc8 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/__init__.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/__init__.py @@ -9,9 +9,11 @@ from ._marketplace_agreements_operations import MarketplaceAgreementsOperations from ._organization_operations_operations import OrganizationOperationsOperations from ._organization_operations import OrganizationOperations +from ._validations_operations import ValidationsOperations __all__ = [ 'MarketplaceAgreementsOperations', 'OrganizationOperationsOperations', 'OrganizationOperations', + 'ValidationsOperations', ] diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_marketplace_agreements_operations.py b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_marketplace_agreements_operations.py index 0899ef68e84..f12f0d80eb2 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_marketplace_agreements_operations.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_marketplace_agreements_operations.py @@ -59,7 +59,7 @@ def list( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -131,7 +131,7 @@ async def create( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operations.py b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operations.py index 2d5e85a544f..e06c0121dbc 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operations.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operations.py @@ -61,7 +61,7 @@ def list_by_subscription( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -133,7 +133,7 @@ def list_by_resource_group( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -209,7 +209,7 @@ async def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" accept = "application/json" # Construct URL @@ -258,7 +258,7 @@ async def _create_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -407,7 +407,7 @@ async def update( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -463,7 +463,7 @@ async def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" accept = "application/json" # Construct URL diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operations_operations.py b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operations_operations.py index fb4dc45eca4..8ab2a4bb500 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operations_operations.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_organization_operations_operations.py @@ -59,7 +59,7 @@ def list( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_validations_operations.py b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_validations_operations.py new file mode 100644 index 00000000000..bd293747e5b --- /dev/null +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/aio/operations/_validations_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. +# -------------------------------------------------------------------------- +from typing import Any, Callable, Dict, Generic, Optional, TypeVar +import warnings + +from azure.core.exceptions import ClientAuthenticationError, 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 ValidationsOperations: + """ValidationsOperations 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.mgmt.confluent.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 validate_organization( + self, + resource_group_name: str, + organization_name: str, + body: "models.OrganizationResource", + **kwargs + ) -> "models.OrganizationResource": + """Organization Validate proxy resource. + + Organization Validate proxy resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param organization_name: Organization resource name. + :type organization_name: str + :param body: Organization resource model. + :type body: ~azure.mgmt.confluent.models.OrganizationResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: OrganizationResource, or the result of cls(response) + :rtype: ~azure.mgmt.confluent.models.OrganizationResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.OrganizationResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-03-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.validate_organization.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'), + 'organizationName': self._serialize.url("organization_name", organization_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'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(body, 'OrganizationResource') + 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.ResourceProviderDefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('OrganizationResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + validate_organization.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Confluent/validations/{organizationName}/orgvalidate'} # type: ignore diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/models/__init__.py b/src/confluent/azext_confluent/vendored_sdks/confluent/models/__init__.py index cafee5127aa..9744155717f 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/models/__init__.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/models/__init__.py @@ -16,12 +16,9 @@ from ._models_py3 import OperationResult from ._models_py3 import OrganizationResource from ._models_py3 import OrganizationResourceListResult - from ._models_py3 import OrganizationResourceProperties - from ._models_py3 import OrganizationResourcePropertiesOfferDetail - from ._models_py3 import OrganizationResourcePropertiesUserDetail - from ._models_py3 import OrganizationResourcePropertiesautogenerated from ._models_py3 import OrganizationResourceUpdate from ._models_py3 import ResourceProviderDefaultErrorResponse + from ._models_py3 import SystemData from ._models_py3 import UserDetail except (SyntaxError, ImportError): from ._models import ConfluentAgreementResource # type: ignore @@ -33,15 +30,13 @@ from ._models import OperationResult # type: ignore from ._models import OrganizationResource # type: ignore from ._models import OrganizationResourceListResult # type: ignore - from ._models import OrganizationResourceProperties # type: ignore - from ._models import OrganizationResourcePropertiesOfferDetail # type: ignore - from ._models import OrganizationResourcePropertiesUserDetail # type: ignore - from ._models import OrganizationResourcePropertiesautogenerated # type: ignore from ._models import OrganizationResourceUpdate # type: ignore from ._models import ResourceProviderDefaultErrorResponse # type: ignore + from ._models import SystemData # type: ignore from ._models import UserDetail # type: ignore from ._confluent_management_client_enums import ( + CreatedByType, ProvisionState, SaaSOfferStatus, ) @@ -56,13 +51,11 @@ 'OperationResult', 'OrganizationResource', 'OrganizationResourceListResult', - 'OrganizationResourceProperties', - 'OrganizationResourcePropertiesOfferDetail', - 'OrganizationResourcePropertiesUserDetail', - 'OrganizationResourcePropertiesautogenerated', 'OrganizationResourceUpdate', 'ResourceProviderDefaultErrorResponse', + 'SystemData', 'UserDetail', + 'CreatedByType', 'ProvisionState', 'SaaSOfferStatus', ] diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/models/_confluent_management_client_enums.py b/src/confluent/azext_confluent/vendored_sdks/confluent/models/_confluent_management_client_enums.py index 77de969ccd0..93b95b746f2 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/models/_confluent_management_client_enums.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/models/_confluent_management_client_enums.py @@ -26,6 +26,15 @@ def __getattr__(cls, name): raise AttributeError(name) +class CreatedByType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): + """The type of identity that created the resource. + """ + + USER = "User" + APPLICATION = "Application" + MANAGED_IDENTITY = "ManagedIdentity" + KEY = "Key" + class ProvisionState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): """Provision states for confluent RP """ diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/models/_models.py b/src/confluent/azext_confluent/vendored_sdks/confluent/models/_models.py index 1ecd1abbd5a..667c5448e0d 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/models/_models.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/models/_models.py @@ -21,6 +21,8 @@ class ConfluentAgreementResource(msrest.serialization.Model): :vartype name: str :ivar type: The type of the agreement. :vartype type: str + :ivar system_data: Metadata pertaining to creation and last modification of the resource. + :vartype system_data: ~azure.mgmt.confluent.models.SystemData :param publisher: Publisher identifier string. :type publisher: str :param product: Product identifier string. @@ -44,12 +46,14 @@ class ConfluentAgreementResource(msrest.serialization.Model): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, + 'system_data': {'readonly': True}, } _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, + 'system_data': {'key': 'systemData', 'type': 'SystemData'}, 'publisher': {'key': 'properties.publisher', 'type': 'str'}, 'product': {'key': 'properties.product', 'type': 'str'}, 'plan': {'key': 'properties.plan', 'type': 'str'}, @@ -68,6 +72,7 @@ def __init__( self.id = None self.name = None self.type = None + self.system_data = None self.publisher = kwargs.get('publisher', None) self.product = kwargs.get('product', None) self.plan = kwargs.get('plan', None) @@ -144,15 +149,17 @@ def __init__( class OfferDetail(msrest.serialization.Model): """Confluent Offer detail. - :param publisher_id: Publisher Id. + All required parameters must be populated in order to send to Azure. + + :param publisher_id: Required. Publisher Id. :type publisher_id: str - :param id: Offer Id. + :param id: Required. Offer Id. :type id: str - :param plan_id: Offer Plan Id. + :param plan_id: Required. Offer Plan Id. :type plan_id: str - :param plan_name: Offer Plan Name. + :param plan_name: Required. Offer Plan Name. :type plan_name: str - :param term_unit: Offer Plan Term unit. + :param term_unit: Required. Offer Plan Term unit. :type term_unit: str :param status: SaaS Offer Status. Possible values include: "Started", "PendingFulfillmentStart", "InProgress", "Subscribed", "Suspended", "Reinstated", "Succeeded", @@ -161,11 +168,11 @@ class OfferDetail(msrest.serialization.Model): """ _validation = { - 'publisher_id': {'max_length': 50, 'min_length': 0}, - 'id': {'max_length': 50, 'min_length': 0}, - 'plan_id': {'max_length': 50, 'min_length': 0}, - 'plan_name': {'max_length': 50, 'min_length': 0}, - 'term_unit': {'max_length': 25, 'min_length': 0}, + 'publisher_id': {'required': True, 'max_length': 50, 'min_length': 0}, + 'id': {'required': True, 'max_length': 50, 'min_length': 0}, + 'plan_id': {'required': True, 'max_length': 50, 'min_length': 0}, + 'plan_name': {'required': True, 'max_length': 50, 'min_length': 0}, + 'term_unit': {'required': True, 'max_length': 25, 'min_length': 0}, } _attribute_map = { @@ -182,11 +189,11 @@ def __init__( **kwargs ): super(OfferDetail, self).__init__(**kwargs) - self.publisher_id = kwargs.get('publisher_id', None) - self.id = kwargs.get('id', None) - self.plan_id = kwargs.get('plan_id', None) - self.plan_name = kwargs.get('plan_name', None) - self.term_unit = kwargs.get('term_unit', None) + self.publisher_id = kwargs['publisher_id'] + self.id = kwargs['id'] + self.plan_id = kwargs['plan_id'] + self.plan_name = kwargs['plan_name'] + self.term_unit = kwargs['term_unit'] self.status = kwargs.get('status', None) @@ -276,12 +283,16 @@ class OrganizationResource(msrest.serialization.Model): 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 ARM id of the resource. :vartype id: str :ivar name: The name of the resource. :vartype name: str :ivar type: The type of the resource. :vartype type: str + :ivar system_data: Metadata pertaining to creation and last modification of the resource. + :vartype system_data: ~azure.mgmt.confluent.models.SystemData :param tags: A set of tags. Organization resource tags. :type tags: dict[str, str] :param location: Location of Organization resource. @@ -296,9 +307,9 @@ class OrganizationResource(msrest.serialization.Model): :vartype organization_id: str :ivar sso_url: SSO url for the Confluent organization. :vartype sso_url: str - :param offer_detail: Confluent offer detail. + :param offer_detail: Required. Confluent offer detail. :type offer_detail: ~azure.mgmt.confluent.models.OfferDetail - :param user_detail: Subscriber detail. + :param user_detail: Required. Subscriber detail. :type user_detail: ~azure.mgmt.confluent.models.UserDetail """ @@ -306,16 +317,20 @@ class OrganizationResource(msrest.serialization.Model): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, + 'system_data': {'readonly': True}, 'created_time': {'readonly': True}, 'provisioning_state': {'readonly': True}, 'organization_id': {'readonly': True}, 'sso_url': {'readonly': True}, + 'offer_detail': {'required': True}, + 'user_detail': {'required': True}, } _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, + 'system_data': {'key': 'systemData', 'type': 'SystemData'}, 'tags': {'key': 'tags', 'type': '{str}'}, 'location': {'key': 'location', 'type': 'str'}, 'created_time': {'key': 'properties.createdTime', 'type': 'iso-8601'}, @@ -334,14 +349,15 @@ def __init__( self.id = None self.name = None self.type = None + self.system_data = None self.tags = kwargs.get('tags', None) self.location = kwargs.get('location', None) self.created_time = None self.provisioning_state = None self.organization_id = None self.sso_url = None - self.offer_detail = kwargs.get('offer_detail', None) - self.user_detail = kwargs.get('user_detail', None) + self.offer_detail = kwargs['offer_detail'] + self.user_detail = kwargs['user_detail'] class OrganizationResourceListResult(msrest.serialization.Model): @@ -367,158 +383,108 @@ def __init__( self.next_link = kwargs.get('next_link', None) -class OrganizationResourceProperties(msrest.serialization.Model): - """Organization resource property. - - Variables are only populated by the server, and will be ignored when sending a request. +class OrganizationResourceUpdate(msrest.serialization.Model): + """Organization Resource update. - :ivar created_time: The creation time of the resource. - :vartype created_time: ~datetime.datetime - :ivar provisioning_state: Provision states for confluent RP. Possible values include: - "Accepted", "Creating", "Updating", "Deleting", "Succeeded", "Failed", "Canceled", "Deleted", - "NotSpecified". - :vartype provisioning_state: str or ~azure.mgmt.confluent.models.ProvisionState - :ivar organization_id: Id of the Confluent organization. - :vartype organization_id: str - :ivar sso_url: SSO url for the Confluent organization. - :vartype sso_url: str - :param offer_detail: Confluent offer detail. - :type offer_detail: ~azure.mgmt.confluent.models.OfferDetail - :param user_detail: Subscriber detail. - :type user_detail: ~azure.mgmt.confluent.models.UserDetail + :param tags: A set of tags. ARM resource tags. + :type tags: dict[str, str] """ - _validation = { - 'created_time': {'readonly': True}, - 'provisioning_state': {'readonly': True}, - 'organization_id': {'readonly': True}, - 'sso_url': {'readonly': True}, - } - _attribute_map = { - 'created_time': {'key': 'createdTime', 'type': 'iso-8601'}, - 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, - 'organization_id': {'key': 'organizationId', 'type': 'str'}, - 'sso_url': {'key': 'ssoUrl', 'type': 'str'}, - 'offer_detail': {'key': 'offerDetail', 'type': 'OfferDetail'}, - 'user_detail': {'key': 'userDetail', 'type': 'UserDetail'}, + 'tags': {'key': 'tags', 'type': '{str}'}, } def __init__( self, **kwargs ): - super(OrganizationResourceProperties, self).__init__(**kwargs) - self.created_time = None - self.provisioning_state = None - self.organization_id = None - self.sso_url = None - self.offer_detail = kwargs.get('offer_detail', None) - self.user_detail = kwargs.get('user_detail', None) + super(OrganizationResourceUpdate, self).__init__(**kwargs) + self.tags = kwargs.get('tags', None) -class OrganizationResourcePropertiesautogenerated(OrganizationResourceProperties): - """Organization resource properties. +class ResourceProviderDefaultErrorResponse(msrest.serialization.Model): + """Default error response for resource provider. Variables are only populated by the server, and will be ignored when sending a request. - :ivar created_time: The creation time of the resource. - :vartype created_time: ~datetime.datetime - :ivar provisioning_state: Provision states for confluent RP. Possible values include: - "Accepted", "Creating", "Updating", "Deleting", "Succeeded", "Failed", "Canceled", "Deleted", - "NotSpecified". - :vartype provisioning_state: str or ~azure.mgmt.confluent.models.ProvisionState - :ivar organization_id: Id of the Confluent organization. - :vartype organization_id: str - :ivar sso_url: SSO url for the Confluent organization. - :vartype sso_url: str - :param offer_detail: Confluent offer detail. - :type offer_detail: ~azure.mgmt.confluent.models.OfferDetail - :param user_detail: Subscriber detail. - :type user_detail: ~azure.mgmt.confluent.models.UserDetail + :ivar error: Response body of Error. + :vartype error: ~azure.mgmt.confluent.models.ErrorResponseBody """ _validation = { - 'created_time': {'readonly': True}, - 'provisioning_state': {'readonly': True}, - 'organization_id': {'readonly': True}, - 'sso_url': {'readonly': True}, + 'error': {'readonly': True}, } _attribute_map = { - 'created_time': {'key': 'createdTime', 'type': 'iso-8601'}, - 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, - 'organization_id': {'key': 'organizationId', 'type': 'str'}, - 'sso_url': {'key': 'ssoUrl', 'type': 'str'}, - 'offer_detail': {'key': 'offerDetail', 'type': 'OfferDetail'}, - 'user_detail': {'key': 'userDetail', 'type': 'UserDetail'}, + 'error': {'key': 'error', 'type': 'ErrorResponseBody'}, } def __init__( self, **kwargs ): - super(OrganizationResourcePropertiesautogenerated, self).__init__(**kwargs) - + super(ResourceProviderDefaultErrorResponse, self).__init__(**kwargs) + self.error = None -class OrganizationResourcePropertiesOfferDetail(OfferDetail): - """Confluent offer detail. - :param publisher_id: Publisher Id. - :type publisher_id: str - :param id: Offer Id. - :type id: str - :param plan_id: Offer Plan Id. - :type plan_id: str - :param plan_name: Offer Plan Name. - :type plan_name: str - :param term_unit: Offer Plan Term unit. - :type term_unit: str - :param status: SaaS Offer Status. Possible values include: "Started", - "PendingFulfillmentStart", "InProgress", "Subscribed", "Suspended", "Reinstated", "Succeeded", - "Failed", "Unsubscribed", "Updating". - :type status: str or ~azure.mgmt.confluent.models.SaaSOfferStatus +class SystemData(msrest.serialization.Model): + """Metadata pertaining to creation and last modification of the resource. + + :param created_by: The identity that created the resource. + :type created_by: str + :param created_by_type: The type of identity that created the resource. Possible values + include: "User", "Application", "ManagedIdentity", "Key". + :type created_by_type: str or ~azure.mgmt.confluent.models.CreatedByType + :param created_at: The timestamp of resource creation (UTC). + :type created_at: ~datetime.datetime + :param last_modified_by: The identity that last modified the resource. + :type last_modified_by: str + :param last_modified_by_type: The type of identity that last modified the resource. Possible + values include: "User", "Application", "ManagedIdentity", "Key". + :type last_modified_by_type: str or ~azure.mgmt.confluent.models.CreatedByType + :param last_modified_at: The timestamp of resource last modification (UTC). + :type last_modified_at: ~datetime.datetime """ - _validation = { - 'publisher_id': {'max_length': 50, 'min_length': 0}, - 'id': {'max_length': 50, 'min_length': 0}, - 'plan_id': {'max_length': 50, 'min_length': 0}, - 'plan_name': {'max_length': 50, 'min_length': 0}, - 'term_unit': {'max_length': 25, 'min_length': 0}, - } - _attribute_map = { - 'publisher_id': {'key': 'publisherId', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'plan_id': {'key': 'planId', 'type': 'str'}, - 'plan_name': {'key': 'planName', 'type': 'str'}, - 'term_unit': {'key': 'termUnit', 'type': 'str'}, - 'status': {'key': 'status', 'type': 'str'}, + 'created_by': {'key': 'createdBy', 'type': 'str'}, + 'created_by_type': {'key': 'createdByType', 'type': 'str'}, + 'created_at': {'key': 'createdAt', 'type': 'iso-8601'}, + 'last_modified_by': {'key': 'lastModifiedBy', 'type': 'str'}, + 'last_modified_by_type': {'key': 'lastModifiedByType', 'type': 'str'}, + 'last_modified_at': {'key': 'lastModifiedAt', 'type': 'iso-8601'}, } def __init__( self, **kwargs ): - super(OrganizationResourcePropertiesOfferDetail, self).__init__(**kwargs) + super(SystemData, self).__init__(**kwargs) + self.created_by = kwargs.get('created_by', None) + self.created_by_type = kwargs.get('created_by_type', None) + self.created_at = kwargs.get('created_at', None) + self.last_modified_by = kwargs.get('last_modified_by', None) + self.last_modified_by_type = kwargs.get('last_modified_by_type', None) + self.last_modified_at = kwargs.get('last_modified_at', None) class UserDetail(msrest.serialization.Model): """Subscriber detail. + All required parameters must be populated in order to send to Azure. + :param first_name: First name. :type first_name: str :param last_name: Last name. :type last_name: str - :param email_address: Email address. + :param email_address: Required. Email address. :type email_address: str """ _validation = { 'first_name': {'max_length': 50, 'min_length': 0}, 'last_name': {'max_length': 50, 'min_length': 0}, - 'email_address': {'pattern': r'^\S+@\S+\.\S+$'}, + 'email_address': {'required': True, 'pattern': r'^\S+@\S+\.\S+$'}, } _attribute_map = { @@ -534,78 +500,4 @@ def __init__( super(UserDetail, self).__init__(**kwargs) self.first_name = kwargs.get('first_name', None) self.last_name = kwargs.get('last_name', None) - self.email_address = kwargs.get('email_address', None) - - -class OrganizationResourcePropertiesUserDetail(UserDetail): - """Subscriber detail. - - :param first_name: First name. - :type first_name: str - :param last_name: Last name. - :type last_name: str - :param email_address: Email address. - :type email_address: str - """ - - _validation = { - 'first_name': {'max_length': 50, 'min_length': 0}, - 'last_name': {'max_length': 50, 'min_length': 0}, - 'email_address': {'pattern': r'^\S+@\S+\.\S+$'}, - } - - _attribute_map = { - 'first_name': {'key': 'firstName', 'type': 'str'}, - 'last_name': {'key': 'lastName', 'type': 'str'}, - 'email_address': {'key': 'emailAddress', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(OrganizationResourcePropertiesUserDetail, self).__init__(**kwargs) - - -class OrganizationResourceUpdate(msrest.serialization.Model): - """Organization Resource update. - - :param tags: A set of tags. ARM resource tags. - :type tags: dict[str, str] - """ - - _attribute_map = { - 'tags': {'key': 'tags', 'type': '{str}'}, - } - - def __init__( - self, - **kwargs - ): - super(OrganizationResourceUpdate, self).__init__(**kwargs) - self.tags = kwargs.get('tags', None) - - -class ResourceProviderDefaultErrorResponse(msrest.serialization.Model): - """Default error response for resource provider. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar error: Response body of Error. - :vartype error: ~azure.mgmt.confluent.models.ErrorResponseBody - """ - - _validation = { - 'error': {'readonly': True}, - } - - _attribute_map = { - 'error': {'key': 'error', 'type': 'ErrorResponseBody'}, - } - - def __init__( - self, - **kwargs - ): - super(ResourceProviderDefaultErrorResponse, self).__init__(**kwargs) - self.error = None + self.email_address = kwargs['email_address'] diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/models/_models_py3.py b/src/confluent/azext_confluent/vendored_sdks/confluent/models/_models_py3.py index 18652da6ae5..7e5fef6d9e2 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/models/_models_py3.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/models/_models_py3.py @@ -26,6 +26,8 @@ class ConfluentAgreementResource(msrest.serialization.Model): :vartype name: str :ivar type: The type of the agreement. :vartype type: str + :ivar system_data: Metadata pertaining to creation and last modification of the resource. + :vartype system_data: ~azure.mgmt.confluent.models.SystemData :param publisher: Publisher identifier string. :type publisher: str :param product: Product identifier string. @@ -49,12 +51,14 @@ class ConfluentAgreementResource(msrest.serialization.Model): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, + 'system_data': {'readonly': True}, } _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, + 'system_data': {'key': 'systemData', 'type': 'SystemData'}, 'publisher': {'key': 'properties.publisher', 'type': 'str'}, 'product': {'key': 'properties.product', 'type': 'str'}, 'plan': {'key': 'properties.plan', 'type': 'str'}, @@ -82,6 +86,7 @@ def __init__( self.id = None self.name = None self.type = None + self.system_data = None self.publisher = publisher self.product = product self.plan = plan @@ -161,15 +166,17 @@ def __init__( class OfferDetail(msrest.serialization.Model): """Confluent Offer detail. - :param publisher_id: Publisher Id. + All required parameters must be populated in order to send to Azure. + + :param publisher_id: Required. Publisher Id. :type publisher_id: str - :param id: Offer Id. + :param id: Required. Offer Id. :type id: str - :param plan_id: Offer Plan Id. + :param plan_id: Required. Offer Plan Id. :type plan_id: str - :param plan_name: Offer Plan Name. + :param plan_name: Required. Offer Plan Name. :type plan_name: str - :param term_unit: Offer Plan Term unit. + :param term_unit: Required. Offer Plan Term unit. :type term_unit: str :param status: SaaS Offer Status. Possible values include: "Started", "PendingFulfillmentStart", "InProgress", "Subscribed", "Suspended", "Reinstated", "Succeeded", @@ -178,11 +185,11 @@ class OfferDetail(msrest.serialization.Model): """ _validation = { - 'publisher_id': {'max_length': 50, 'min_length': 0}, - 'id': {'max_length': 50, 'min_length': 0}, - 'plan_id': {'max_length': 50, 'min_length': 0}, - 'plan_name': {'max_length': 50, 'min_length': 0}, - 'term_unit': {'max_length': 25, 'min_length': 0}, + 'publisher_id': {'required': True, 'max_length': 50, 'min_length': 0}, + 'id': {'required': True, 'max_length': 50, 'min_length': 0}, + 'plan_id': {'required': True, 'max_length': 50, 'min_length': 0}, + 'plan_name': {'required': True, 'max_length': 50, 'min_length': 0}, + 'term_unit': {'required': True, 'max_length': 25, 'min_length': 0}, } _attribute_map = { @@ -197,11 +204,11 @@ class OfferDetail(msrest.serialization.Model): def __init__( self, *, - publisher_id: Optional[str] = None, - id: Optional[str] = None, - plan_id: Optional[str] = None, - plan_name: Optional[str] = None, - term_unit: Optional[str] = None, + publisher_id: str, + id: str, + plan_id: str, + plan_name: str, + term_unit: str, status: Optional[Union[str, "SaaSOfferStatus"]] = None, **kwargs ): @@ -312,12 +319,16 @@ class OrganizationResource(msrest.serialization.Model): 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 ARM id of the resource. :vartype id: str :ivar name: The name of the resource. :vartype name: str :ivar type: The type of the resource. :vartype type: str + :ivar system_data: Metadata pertaining to creation and last modification of the resource. + :vartype system_data: ~azure.mgmt.confluent.models.SystemData :param tags: A set of tags. Organization resource tags. :type tags: dict[str, str] :param location: Location of Organization resource. @@ -332,9 +343,9 @@ class OrganizationResource(msrest.serialization.Model): :vartype organization_id: str :ivar sso_url: SSO url for the Confluent organization. :vartype sso_url: str - :param offer_detail: Confluent offer detail. + :param offer_detail: Required. Confluent offer detail. :type offer_detail: ~azure.mgmt.confluent.models.OfferDetail - :param user_detail: Subscriber detail. + :param user_detail: Required. Subscriber detail. :type user_detail: ~azure.mgmt.confluent.models.UserDetail """ @@ -342,16 +353,20 @@ class OrganizationResource(msrest.serialization.Model): 'id': {'readonly': True}, 'name': {'readonly': True}, 'type': {'readonly': True}, + 'system_data': {'readonly': True}, 'created_time': {'readonly': True}, 'provisioning_state': {'readonly': True}, 'organization_id': {'readonly': True}, 'sso_url': {'readonly': True}, + 'offer_detail': {'required': True}, + 'user_detail': {'required': True}, } _attribute_map = { 'id': {'key': 'id', 'type': 'str'}, 'name': {'key': 'name', 'type': 'str'}, 'type': {'key': 'type', 'type': 'str'}, + 'system_data': {'key': 'systemData', 'type': 'SystemData'}, 'tags': {'key': 'tags', 'type': '{str}'}, 'location': {'key': 'location', 'type': 'str'}, 'created_time': {'key': 'properties.createdTime', 'type': 'iso-8601'}, @@ -365,16 +380,17 @@ class OrganizationResource(msrest.serialization.Model): def __init__( self, *, + offer_detail: "OfferDetail", + user_detail: "UserDetail", tags: Optional[Dict[str, str]] = None, location: Optional[str] = None, - offer_detail: Optional["OfferDetail"] = None, - user_detail: Optional["UserDetail"] = None, **kwargs ): super(OrganizationResource, self).__init__(**kwargs) self.id = None self.name = None self.type = None + self.system_data = None self.tags = tags self.location = location self.created_time = None @@ -411,171 +427,117 @@ def __init__( self.next_link = next_link -class OrganizationResourceProperties(msrest.serialization.Model): - """Organization resource property. - - Variables are only populated by the server, and will be ignored when sending a request. +class OrganizationResourceUpdate(msrest.serialization.Model): + """Organization Resource update. - :ivar created_time: The creation time of the resource. - :vartype created_time: ~datetime.datetime - :ivar provisioning_state: Provision states for confluent RP. Possible values include: - "Accepted", "Creating", "Updating", "Deleting", "Succeeded", "Failed", "Canceled", "Deleted", - "NotSpecified". - :vartype provisioning_state: str or ~azure.mgmt.confluent.models.ProvisionState - :ivar organization_id: Id of the Confluent organization. - :vartype organization_id: str - :ivar sso_url: SSO url for the Confluent organization. - :vartype sso_url: str - :param offer_detail: Confluent offer detail. - :type offer_detail: ~azure.mgmt.confluent.models.OfferDetail - :param user_detail: Subscriber detail. - :type user_detail: ~azure.mgmt.confluent.models.UserDetail + :param tags: A set of tags. ARM resource tags. + :type tags: dict[str, str] """ - _validation = { - 'created_time': {'readonly': True}, - 'provisioning_state': {'readonly': True}, - 'organization_id': {'readonly': True}, - 'sso_url': {'readonly': True}, - } - _attribute_map = { - 'created_time': {'key': 'createdTime', 'type': 'iso-8601'}, - 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, - 'organization_id': {'key': 'organizationId', 'type': 'str'}, - 'sso_url': {'key': 'ssoUrl', 'type': 'str'}, - 'offer_detail': {'key': 'offerDetail', 'type': 'OfferDetail'}, - 'user_detail': {'key': 'userDetail', 'type': 'UserDetail'}, + 'tags': {'key': 'tags', 'type': '{str}'}, } def __init__( self, *, - offer_detail: Optional["OfferDetail"] = None, - user_detail: Optional["UserDetail"] = None, + tags: Optional[Dict[str, str]] = None, **kwargs ): - super(OrganizationResourceProperties, self).__init__(**kwargs) - self.created_time = None - self.provisioning_state = None - self.organization_id = None - self.sso_url = None - self.offer_detail = offer_detail - self.user_detail = user_detail + super(OrganizationResourceUpdate, self).__init__(**kwargs) + self.tags = tags -class OrganizationResourcePropertiesautogenerated(OrganizationResourceProperties): - """Organization resource properties. +class ResourceProviderDefaultErrorResponse(msrest.serialization.Model): + """Default error response for resource provider. Variables are only populated by the server, and will be ignored when sending a request. - :ivar created_time: The creation time of the resource. - :vartype created_time: ~datetime.datetime - :ivar provisioning_state: Provision states for confluent RP. Possible values include: - "Accepted", "Creating", "Updating", "Deleting", "Succeeded", "Failed", "Canceled", "Deleted", - "NotSpecified". - :vartype provisioning_state: str or ~azure.mgmt.confluent.models.ProvisionState - :ivar organization_id: Id of the Confluent organization. - :vartype organization_id: str - :ivar sso_url: SSO url for the Confluent organization. - :vartype sso_url: str - :param offer_detail: Confluent offer detail. - :type offer_detail: ~azure.mgmt.confluent.models.OfferDetail - :param user_detail: Subscriber detail. - :type user_detail: ~azure.mgmt.confluent.models.UserDetail + :ivar error: Response body of Error. + :vartype error: ~azure.mgmt.confluent.models.ErrorResponseBody """ _validation = { - 'created_time': {'readonly': True}, - 'provisioning_state': {'readonly': True}, - 'organization_id': {'readonly': True}, - 'sso_url': {'readonly': True}, + 'error': {'readonly': True}, } _attribute_map = { - 'created_time': {'key': 'createdTime', 'type': 'iso-8601'}, - 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, - 'organization_id': {'key': 'organizationId', 'type': 'str'}, - 'sso_url': {'key': 'ssoUrl', 'type': 'str'}, - 'offer_detail': {'key': 'offerDetail', 'type': 'OfferDetail'}, - 'user_detail': {'key': 'userDetail', 'type': 'UserDetail'}, + 'error': {'key': 'error', 'type': 'ErrorResponseBody'}, } def __init__( self, - *, - offer_detail: Optional["OfferDetail"] = None, - user_detail: Optional["UserDetail"] = None, **kwargs ): - super(OrganizationResourcePropertiesautogenerated, self).__init__(offer_detail=offer_detail, user_detail=user_detail, **kwargs) - + super(ResourceProviderDefaultErrorResponse, self).__init__(**kwargs) + self.error = None -class OrganizationResourcePropertiesOfferDetail(OfferDetail): - """Confluent offer detail. - :param publisher_id: Publisher Id. - :type publisher_id: str - :param id: Offer Id. - :type id: str - :param plan_id: Offer Plan Id. - :type plan_id: str - :param plan_name: Offer Plan Name. - :type plan_name: str - :param term_unit: Offer Plan Term unit. - :type term_unit: str - :param status: SaaS Offer Status. Possible values include: "Started", - "PendingFulfillmentStart", "InProgress", "Subscribed", "Suspended", "Reinstated", "Succeeded", - "Failed", "Unsubscribed", "Updating". - :type status: str or ~azure.mgmt.confluent.models.SaaSOfferStatus +class SystemData(msrest.serialization.Model): + """Metadata pertaining to creation and last modification of the resource. + + :param created_by: The identity that created the resource. + :type created_by: str + :param created_by_type: The type of identity that created the resource. Possible values + include: "User", "Application", "ManagedIdentity", "Key". + :type created_by_type: str or ~azure.mgmt.confluent.models.CreatedByType + :param created_at: The timestamp of resource creation (UTC). + :type created_at: ~datetime.datetime + :param last_modified_by: The identity that last modified the resource. + :type last_modified_by: str + :param last_modified_by_type: The type of identity that last modified the resource. Possible + values include: "User", "Application", "ManagedIdentity", "Key". + :type last_modified_by_type: str or ~azure.mgmt.confluent.models.CreatedByType + :param last_modified_at: The timestamp of resource last modification (UTC). + :type last_modified_at: ~datetime.datetime """ - _validation = { - 'publisher_id': {'max_length': 50, 'min_length': 0}, - 'id': {'max_length': 50, 'min_length': 0}, - 'plan_id': {'max_length': 50, 'min_length': 0}, - 'plan_name': {'max_length': 50, 'min_length': 0}, - 'term_unit': {'max_length': 25, 'min_length': 0}, - } - _attribute_map = { - 'publisher_id': {'key': 'publisherId', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'plan_id': {'key': 'planId', 'type': 'str'}, - 'plan_name': {'key': 'planName', 'type': 'str'}, - 'term_unit': {'key': 'termUnit', 'type': 'str'}, - 'status': {'key': 'status', 'type': 'str'}, + 'created_by': {'key': 'createdBy', 'type': 'str'}, + 'created_by_type': {'key': 'createdByType', 'type': 'str'}, + 'created_at': {'key': 'createdAt', 'type': 'iso-8601'}, + 'last_modified_by': {'key': 'lastModifiedBy', 'type': 'str'}, + 'last_modified_by_type': {'key': 'lastModifiedByType', 'type': 'str'}, + 'last_modified_at': {'key': 'lastModifiedAt', 'type': 'iso-8601'}, } def __init__( self, *, - publisher_id: Optional[str] = None, - id: Optional[str] = None, - plan_id: Optional[str] = None, - plan_name: Optional[str] = None, - term_unit: Optional[str] = None, - status: Optional[Union[str, "SaaSOfferStatus"]] = None, + created_by: Optional[str] = None, + created_by_type: Optional[Union[str, "CreatedByType"]] = None, + created_at: Optional[datetime.datetime] = None, + last_modified_by: Optional[str] = None, + last_modified_by_type: Optional[Union[str, "CreatedByType"]] = None, + last_modified_at: Optional[datetime.datetime] = None, **kwargs ): - super(OrganizationResourcePropertiesOfferDetail, self).__init__(publisher_id=publisher_id, id=id, plan_id=plan_id, plan_name=plan_name, term_unit=term_unit, status=status, **kwargs) + super(SystemData, self).__init__(**kwargs) + self.created_by = created_by + self.created_by_type = created_by_type + self.created_at = created_at + self.last_modified_by = last_modified_by + self.last_modified_by_type = last_modified_by_type + self.last_modified_at = last_modified_at class UserDetail(msrest.serialization.Model): """Subscriber detail. + All required parameters must be populated in order to send to Azure. + :param first_name: First name. :type first_name: str :param last_name: Last name. :type last_name: str - :param email_address: Email address. + :param email_address: Required. Email address. :type email_address: str """ _validation = { 'first_name': {'max_length': 50, 'min_length': 0}, 'last_name': {'max_length': 50, 'min_length': 0}, - 'email_address': {'pattern': r'^\S+@\S+\.\S+$'}, + 'email_address': {'required': True, 'pattern': r'^\S+@\S+\.\S+$'}, } _attribute_map = { @@ -587,92 +549,12 @@ class UserDetail(msrest.serialization.Model): def __init__( self, *, + email_address: str, first_name: Optional[str] = None, last_name: Optional[str] = None, - email_address: Optional[str] = None, **kwargs ): super(UserDetail, self).__init__(**kwargs) self.first_name = first_name self.last_name = last_name self.email_address = email_address - - -class OrganizationResourcePropertiesUserDetail(UserDetail): - """Subscriber detail. - - :param first_name: First name. - :type first_name: str - :param last_name: Last name. - :type last_name: str - :param email_address: Email address. - :type email_address: str - """ - - _validation = { - 'first_name': {'max_length': 50, 'min_length': 0}, - 'last_name': {'max_length': 50, 'min_length': 0}, - 'email_address': {'pattern': r'^\S+@\S+\.\S+$'}, - } - - _attribute_map = { - 'first_name': {'key': 'firstName', 'type': 'str'}, - 'last_name': {'key': 'lastName', 'type': 'str'}, - 'email_address': {'key': 'emailAddress', 'type': 'str'}, - } - - def __init__( - self, - *, - first_name: Optional[str] = None, - last_name: Optional[str] = None, - email_address: Optional[str] = None, - **kwargs - ): - super(OrganizationResourcePropertiesUserDetail, self).__init__(first_name=first_name, last_name=last_name, email_address=email_address, **kwargs) - - -class OrganizationResourceUpdate(msrest.serialization.Model): - """Organization Resource update. - - :param tags: A set of tags. ARM 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(OrganizationResourceUpdate, self).__init__(**kwargs) - self.tags = tags - - -class ResourceProviderDefaultErrorResponse(msrest.serialization.Model): - """Default error response for resource provider. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar error: Response body of Error. - :vartype error: ~azure.mgmt.confluent.models.ErrorResponseBody - """ - - _validation = { - 'error': {'readonly': True}, - } - - _attribute_map = { - 'error': {'key': 'error', 'type': 'ErrorResponseBody'}, - } - - def __init__( - self, - **kwargs - ): - super(ResourceProviderDefaultErrorResponse, self).__init__(**kwargs) - self.error = None diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/__init__.py b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/__init__.py index a48992bda8e..e07bcdedfc8 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/__init__.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/__init__.py @@ -9,9 +9,11 @@ from ._marketplace_agreements_operations import MarketplaceAgreementsOperations from ._organization_operations_operations import OrganizationOperationsOperations from ._organization_operations import OrganizationOperations +from ._validations_operations import ValidationsOperations __all__ = [ 'MarketplaceAgreementsOperations', 'OrganizationOperationsOperations', 'OrganizationOperations', + 'ValidationsOperations', ] diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_marketplace_agreements_operations.py b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_marketplace_agreements_operations.py index 70062747363..28b465d29a3 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_marketplace_agreements_operations.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_marketplace_agreements_operations.py @@ -64,7 +64,7 @@ def list( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -137,7 +137,7 @@ def create( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operations.py b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operations.py index 7c0cd1e2258..1abcb84260b 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operations.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operations.py @@ -66,7 +66,7 @@ def list_by_subscription( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -139,7 +139,7 @@ def list_by_resource_group( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" accept = "application/json" def prepare_request(next_link=None): @@ -216,7 +216,7 @@ def get( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" accept = "application/json" # Construct URL @@ -266,7 +266,7 @@ def _create_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -417,7 +417,7 @@ def update( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" content_type = kwargs.pop("content_type", "application/json") accept = "application/json" @@ -474,7 +474,7 @@ def _delete_initial( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" accept = "application/json" # Construct URL diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operations_operations.py b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operations_operations.py index fc16899213e..fd93f002fb3 100644 --- a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operations_operations.py +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_organization_operations_operations.py @@ -64,7 +64,7 @@ def list( 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError } error_map.update(kwargs.pop('error_map', {})) - api_version = "2020-03-01-preview" + api_version = "2021-03-01-preview" accept = "application/json" def prepare_request(next_link=None): diff --git a/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_validations_operations.py b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_validations_operations.py new file mode 100644 index 00000000000..0b0aa93193f --- /dev/null +++ b/src/confluent/azext_confluent/vendored_sdks/confluent/operations/_validations_operations.py @@ -0,0 +1,115 @@ +# 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 ClientAuthenticationError, 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 ValidationsOperations(object): + """ValidationsOperations 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.mgmt.confluent.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 validate_organization( + self, + resource_group_name, # type: str + organization_name, # type: str + body, # type: "models.OrganizationResource" + **kwargs # type: Any + ): + # type: (...) -> "models.OrganizationResource" + """Organization Validate proxy resource. + + Organization Validate proxy resource. + + :param resource_group_name: Resource group name. + :type resource_group_name: str + :param organization_name: Organization resource name. + :type organization_name: str + :param body: Organization resource model. + :type body: ~azure.mgmt.confluent.models.OrganizationResource + :keyword callable cls: A custom type or function that will be passed the direct response + :return: OrganizationResource, or the result of cls(response) + :rtype: ~azure.mgmt.confluent.models.OrganizationResource + :raises: ~azure.core.exceptions.HttpResponseError + """ + cls = kwargs.pop('cls', None) # type: ClsType["models.OrganizationResource"] + error_map = { + 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError + } + error_map.update(kwargs.pop('error_map', {})) + api_version = "2021-03-01-preview" + content_type = kwargs.pop("content_type", "application/json") + accept = "application/json" + + # Construct URL + url = self.validate_organization.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'), + 'organizationName': self._serialize.url("organization_name", organization_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'] = self._serialize.header("accept", accept, 'str') + + body_content_kwargs = {} # type: Dict[str, Any] + body_content = self._serialize.body(body, 'OrganizationResource') + body_content_kwargs['content'] = body_content + request = self._client.post(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.ResourceProviderDefaultErrorResponse, response) + raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) + + deserialized = self._deserialize('OrganizationResource', pipeline_response) + + if cls: + return cls(pipeline_response, deserialized, {}) + + return deserialized + validate_organization.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Confluent/validations/{organizationName}/orgvalidate'} # type: ignore From ae600d8ea0a4822c9731a91b7aaadba586d12010 Mon Sep 17 00:00:00 2001 From: 00Kai0 Date: Tue, 15 Jun 2021 17:19:23 +0800 Subject: [PATCH 5/8] update based on feedback --- .../azext_confluent/manual/custom.py | 24 ++++++++++++++----- .../test_confluent_scenario_coverage.md | 12 +++++----- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/confluent/azext_confluent/manual/custom.py b/src/confluent/azext_confluent/manual/custom.py index f849949b057..104fa92e348 100644 --- a/src/confluent/azext_confluent/manual/custom.py +++ b/src/confluent/azext_confluent/manual/custom.py @@ -25,6 +25,7 @@ def confluent_organization_create(cmd, no_wait=False): import jwt from azure.cli.core._profile import Profile + from azure.cli.core.azclierror import UnauthorizedError from azure.cli.command_modules.role.custom import list_role_assignments token_info = Profile(cli_ctx=cmd.cli_ctx).get_raw_token()[0][2] @@ -36,7 +37,7 @@ def confluent_organization_create(cmd, body['user_detail']['last_name'] = decode['family_name'] body['user_detail']['email_address'] = decode['email'] if 'email' in decode else decode['unique_name'] except KeyError as ex: - raise Exception(f'Cannot create the organization as CLI cannot get the right value for {str(ex)} from access ' + raise UnauthorizedError(f'Cannot create the organization as CLI cannot get the right value for {str(ex)} from access ' 'token.') from ex # Check owner or contributor role of subscription @@ -44,7 +45,7 @@ def confluent_organization_create(cmd, role_assignments = list_role_assignments(cmd, assignee=user_object_id, role='Owner') + \ list_role_assignments(cmd, assignee=user_object_id, role='Contributor') if not role_assignments: - raise Exception('You must have Owner or Contributor role of the subscription to create an organization.') + raise UnauthorizedError('You must have Owner or Contributor role of the subscription to create an organization.') body['tags'] = tags body['location'] = location @@ -75,7 +76,9 @@ def confluent_organization_delete(client, '- Stop billing for the selected Confluent organization through Azure Marketplace.\n' \ 'Do you want to proceed' - if org.offer_detail.plan_id.lower() == 'commit': + if org.offer_detail.plan_id in ['confluent-cloud-azure-payg-prod', 'confluent-cloud-azure-payg-stag']: + user_confirmation(default_msg) + else: user_confirmation('- The action cannot be undone and will permanently delete this resource.\n' '- Resource deletion is a permanent action. All the resources, contract purchased ' 'and its Azure integration will be permanently deleted and will unsubscribe you ' @@ -90,8 +93,6 @@ def confluent_organization_delete(client, 'deletion process and timeline, please contact Confluent Support: ' 'https://support.confluent.io/\n' 'Do you want to proceed') - else: - user_confirmation(default_msg) return sdk_no_wait(no_wait, client.begin_delete, @@ -109,9 +110,20 @@ def confluent_offer_detail_show(cmd, publisher_id=None, offer_id=None): plans = response.json()['plans'] plans = [{'planId': plan['planId'], 'planName': plan['displayName'], - 'termUnits':[item for a in plan['availabilities'] for item in a['terms']] + 'offerId': offer_id, + 'publisherId': publisher_id, + 'termUnits':[{ + 'price': item['price'], + 'termDescription': item['termDescription'], + 'termUnits': item['termUnits'] + } for a in plan['availabilities'] for item in a['terms']] } for plan in plans] except KeyError as ex: raise ArgumentUsageError('Not able to get offer details for the provided publisher id and offer id.') from ex + for plan in plans: + for term in plan['termUnits']: + if term['termUnits'] not in ['P1M', 'P1Y']: + del term['termUnits'] + return plans diff --git a/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md b/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md index b77602afc5b..bde546fdaa6 100644 --- a/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md +++ b/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md @@ -1,8 +1,8 @@ |Scenario|Result|ErrorMessage|ErrorStack|ErrorNormalized|StartDt|EndDt| -|step_terms_list|successed||||2021-05-24 07:38:55.834022|2021-05-24 07:38:55.963383| -|step_organization_show|successed||||2021-05-24 07:38:56.149089|2021-05-24 07:38:56.202278| -|step_organization_list|successed||||2021-05-24 07:38:56.202490|2021-05-24 07:38:56.259075| -|step_organization_list2|successed||||2021-05-24 07:38:56.259292|2021-05-24 07:38:56.313915| -|step_organization_update|successed||||2021-05-24 07:38:56.314167|2021-05-24 07:38:56.367895| -|step_organization_delete|successed||||2021-05-24 07:38:56.368122|2021-05-24 07:38:56.538469| +|step_terms_list|successed||||2021-06-15 09:17:45.214872|2021-06-15 09:17:45.372821| +|step_organization_show|successed||||2021-06-15 09:17:45.680822|2021-06-15 09:17:45.774822| +|step_organization_list|successed||||2021-06-15 09:17:45.774822|2021-06-15 09:17:45.869822| +|step_organization_list2|successed||||2021-06-15 09:17:45.869822|2021-06-15 09:17:45.962821| +|step_organization_update|successed||||2021-06-15 09:17:45.962821|2021-06-15 09:17:46.060822| +|step_organization_delete|successed||||2021-06-15 09:17:46.060822|2021-06-15 09:17:46.280822| Coverage: 6/6 From dbb23a3a733e5d48aebeaa4e15d96d2ddba40ee4 Mon Sep 17 00:00:00 2001 From: 00Kai0 Date: Mon, 21 Jun 2021 10:47:29 +0800 Subject: [PATCH 6/8] add some checks --- .../tests/latest/test_confluent_scenario.py | 14 ++++++++++++-- .../latest/test_confluent_scenario_coverage.md | 12 ++++++------ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/confluent/azext_confluent/tests/latest/test_confluent_scenario.py b/src/confluent/azext_confluent/tests/latest/test_confluent_scenario.py index 8184ba4d142..f855240a37a 100644 --- a/src/confluent/azext_confluent/tests/latest/test_confluent_scenario.py +++ b/src/confluent/azext_confluent/tests/latest/test_confluent_scenario.py @@ -34,10 +34,20 @@ def step_offer_detail_show(test, rg, checks=None): if checks is None: checks = [] - test.cmd('az confluent offer-detail show ' + result = test.cmd('az confluent offer-detail show ' '--publisher-id confluentinc ' '--offer-id confluent-cloud-azure-stag', - checks=checks) + checks=checks).get_output_in_json() + + # check + for plan in result: + assert plan.get('offerId', None) is not None + assert plan.get('publisherId', None) is not None + for term_unit in plan['termUnits']: + if term_unit.get('termUnits', None): + assert term_unit['termUnits'] in ['P1M', 'P1Y'] + assert term_unit.get('price', None) is not None + assert term_unit.get('termDescription', None) is not None orig_decode = jwt.decode diff --git a/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md b/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md index bde546fdaa6..789db8ad7d9 100644 --- a/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md +++ b/src/confluent/azext_confluent/tests/latest/test_confluent_scenario_coverage.md @@ -1,8 +1,8 @@ |Scenario|Result|ErrorMessage|ErrorStack|ErrorNormalized|StartDt|EndDt| -|step_terms_list|successed||||2021-06-15 09:17:45.214872|2021-06-15 09:17:45.372821| -|step_organization_show|successed||||2021-06-15 09:17:45.680822|2021-06-15 09:17:45.774822| -|step_organization_list|successed||||2021-06-15 09:17:45.774822|2021-06-15 09:17:45.869822| -|step_organization_list2|successed||||2021-06-15 09:17:45.869822|2021-06-15 09:17:45.962821| -|step_organization_update|successed||||2021-06-15 09:17:45.962821|2021-06-15 09:17:46.060822| -|step_organization_delete|successed||||2021-06-15 09:17:46.060822|2021-06-15 09:17:46.280822| +|step_terms_list|successed||||2021-06-21 02:44:44.694501|2021-06-21 02:44:44.946485| +|step_organization_show|successed||||2021-06-21 02:44:45.356491|2021-06-21 02:44:45.449457| +|step_organization_list|successed||||2021-06-21 02:44:45.449457|2021-06-21 02:44:45.571478| +|step_organization_list2|successed||||2021-06-21 02:44:45.572449|2021-06-21 02:44:45.670480| +|step_organization_update|successed||||2021-06-21 02:44:45.671479|2021-06-21 02:44:45.766477| +|step_organization_delete|successed||||2021-06-21 02:44:45.767451|2021-06-21 02:44:45.991454| Coverage: 6/6 From 66e8c7742342117c3ce6ef2e6a02f2fdd2c71380 Mon Sep 17 00:00:00 2001 From: 00Kai0 Date: Tue, 22 Jun 2021 14:15:53 +0800 Subject: [PATCH 7/8] fix style --- src/confluent/azext_confluent/manual/custom.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/confluent/azext_confluent/manual/custom.py b/src/confluent/azext_confluent/manual/custom.py index 104fa92e348..4b247e3229d 100644 --- a/src/confluent/azext_confluent/manual/custom.py +++ b/src/confluent/azext_confluent/manual/custom.py @@ -116,7 +116,7 @@ def confluent_offer_detail_show(cmd, publisher_id=None, offer_id=None): 'price': item['price'], 'termDescription': item['termDescription'], 'termUnits': item['termUnits'] - } for a in plan['availabilities'] for item in a['terms']] + } for a in plan['availabilities'] for item in a['terms']] } for plan in plans] except KeyError as ex: raise ArgumentUsageError('Not able to get offer details for the provided publisher id and offer id.') from ex From 9d4431944ebab189c5f8116ef530086b2e21bfdd Mon Sep 17 00:00:00 2001 From: 00Kai0 Date: Tue, 22 Jun 2021 14:29:44 +0800 Subject: [PATCH 8/8] fix style --- src/confluent/azext_confluent/manual/custom.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/confluent/azext_confluent/manual/custom.py b/src/confluent/azext_confluent/manual/custom.py index 4b247e3229d..e995331fd26 100644 --- a/src/confluent/azext_confluent/manual/custom.py +++ b/src/confluent/azext_confluent/manual/custom.py @@ -38,7 +38,7 @@ def confluent_organization_create(cmd, body['user_detail']['email_address'] = decode['email'] if 'email' in decode else decode['unique_name'] except KeyError as ex: raise UnauthorizedError(f'Cannot create the organization as CLI cannot get the right value for {str(ex)} from access ' - 'token.') from ex + 'token.') from ex # Check owner or contributor role of subscription user_object_id = decode['oid']