diff --git a/src/datadog/HISTORY.rst b/src/datadog/HISTORY.rst index 1c139576ba0..eb706a85447 100644 --- a/src/datadog/HISTORY.rst +++ b/src/datadog/HISTORY.rst @@ -3,6 +3,10 @@ Release History =============== +1.0.0 +++++++ +* Update description of CLI commands + 0.1.0 ++++++ -* Initial release. +* Initial release. \ No newline at end of file diff --git a/src/datadog/README.md b/src/datadog/README.md index b5ab201dcc0..2f90cb42bc8 100644 --- a/src/datadog/README.md +++ b/src/datadog/README.md @@ -1,5 +1,88 @@ -Microsoft Azure CLI 'datadog' Extension -========================================== +# Azure CLI Datadog Extension # +This is an extension to Azure CLI to manage Datadog resources. -This package is for the 'datadog' extension. -i.e. 'az datadog' +## How to use ## +Install this extension using the below CLI command +``` +az extension add --name datadog +``` + +### Included Features ### +#### datadog monitor #### +##### Create ##### +``` +az datadog monitor create --name {monitor} --resource-group {rg} --sku {{name:payg_v3_Monthly@TIDgmz7xq9ge3py}} --identity {{type:SystemAssigned}} --user-info {{name:Alice,email-address:alice@microsoft.com}} +``` +``` +##### Show ##### +``` +az datadog monitor show --name {monitor} --resource-group {rg} +``` +##### List ##### +``` +az datadog monitor list --resource-group {rg} +``` +##### Update ##### +``` +az datadog monitor update --name {monitor} --resource-group {rg} --tags Environment="Dev2" +``` +##### Get default Keys ##### +``` +az datadog monitor get-default-keys --name {monitor} --resource-group {rg} +``` +##### List Api Keys ##### +``` +az datadog monitor list-api-keys --name {monitor} --resource-group {rg} +``` +##### Set default Keys ##### +``` +az datadog monitor set-default-keys --name {monitor} --resource-group {rg} --api-key "{name:apiKey}" --key "1111111111111111aaaaaaaaaaaaaaaa" +``` +##### List Host ##### +``` +az datadog monitor list-host --name {monitor} --resource-group {rg} +``` +##### List linked resources ##### +``` +az datadog monitor list-linked-resource --name {monitor} --resource-group {rg} +``` +##### List Monitored resources ##### +``` +az datadog monitor list-monitored-resource --name {monitor} --resource-group {rg} +``` +##### refresh set password likn ##### +``` +az datadog monitor refresh-set-password-link --name {monitor} --resource-group {rg} +``` +##### delete ##### +``` +az datadog monitor delete --name {monitor} --resource-group {rg} +``` +##### SSO create ##### +``` +az datadog sso-config create --configuration-name "default" --monitor-name "{myMonitor}" --properties enterprise-app-id="ac754169-3489-42ae-bd06-8be89db12e58" single-sign-on-state="Enable" +``` +##### SSO show ##### +``` +az datadog datadog sso-config show --configuration-name "default" --monitor-name "{myMonitor}" --resource-group "{rg}" +``` +##### SSO list ##### +``` +az datadog sso-config list --monitor-name "{myMonitor}" --resource-group "{rg}" +``` +##### Tag rule create ##### +``` +az tag-rule create --monitor-name "{myMonitor}" --log-rules-filtering-tags name="Environment" action="Include" value="Prod" --log-rules-filtering-tags name="Environment" action="Exclude" value="Dev" --send-aad-logs false --send-resource-logs true --send-subscription-logs true --resource-group "{rg}" +``` +##### Tag rule show ##### +``` +az datadog tag-rule show --monitor-name "{myMonitor}" --resource-group "{rg}" +``` +##### Tag rule list ##### +``` +az datadog tag-rule list --monitor-name "{myMonitor}" --resource-group "{rg}" +``` +##### list terms ##### +``` +az datadog terms list +``` \ No newline at end of file diff --git a/src/datadog/azext_datadog/__init__.py b/src/datadog/azext_datadog/__init__.py index 51fecb70315..dc0beddfea1 100644 --- a/src/datadog/azext_datadog/__init__.py +++ b/src/datadog/azext_datadog/__init__.py @@ -1,50 +1,42 @@ -# -------------------------------------------------------------------------- +# -------------------------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. +# Licensed under the MIT License. See License.txt in the project root for license information. # -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- from azure.cli.core import AzCommandsLoader -from azext_datadog.generated._help import helps # pylint: disable=unused-import -try: - from azext_datadog.manual._help import helps # pylint: disable=reimported -except ImportError: - pass +from azext_datadog._help import helps # pylint: disable=unused-import -class MicrosoftDatadogClientCommandsLoader(AzCommandsLoader): +class DatadogCommandsLoader(AzCommandsLoader): def __init__(self, cli_ctx=None): from azure.cli.core.commands import CliCommandType - from azext_datadog.generated._client_factory import cf_datadog_cl - datadog_custom = CliCommandType( - operations_tmpl='azext_datadog.custom#{}', - client_factory=cf_datadog_cl) - parent = super(MicrosoftDatadogClientCommandsLoader, self) - parent.__init__(cli_ctx=cli_ctx, custom_command_type=datadog_custom) + custom_command_type = CliCommandType( + operations_tmpl='azext_datadog.custom#{}') + super().__init__(cli_ctx=cli_ctx, + custom_command_type=custom_command_type) def load_command_table(self, args): - from azext_datadog.generated.commands import load_command_table - load_command_table(self, args) + from azext_datadog.commands import load_command_table + from azure.cli.core.aaz import load_aaz_command_table try: - from azext_datadog.manual.commands import load_command_table as load_command_table_manual - load_command_table_manual(self, args) + from . import aaz except ImportError: - pass + aaz = None + if aaz: + load_aaz_command_table( + loader=self, + aaz_pkg_name=aaz.__name__, + args=args + ) + load_command_table(self, args) return self.command_table def load_arguments(self, command): - from azext_datadog.generated._params import load_arguments + from azext_datadog._params import load_arguments load_arguments(self, command) - try: - from azext_datadog.manual._params import load_arguments as load_arguments_manual - load_arguments_manual(self, command) - except ImportError: - pass -COMMAND_LOADER_CLS = MicrosoftDatadogClientCommandsLoader +COMMAND_LOADER_CLS = DatadogCommandsLoader diff --git a/src/datadog/azext_datadog/manual/_help.py b/src/datadog/azext_datadog/_help.py similarity index 73% rename from src/datadog/azext_datadog/manual/_help.py rename to src/datadog/azext_datadog/_help.py index f1e238ac40c..126d5d00714 100644 --- a/src/datadog/azext_datadog/manual/_help.py +++ b/src/datadog/azext_datadog/_help.py @@ -1,12 +1,11 @@ # -------------------------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools # -------------------------------------------------------------------------------------------- -# pylint: disable=too-many-lines -from knack.help_files import helps +# pylint: disable=line-too-long +# pylint: disable=too-many-lines -helps['datadog'] = """ - type: group - short-summary: Manage datadog -""" +from knack.help_files import helps # pylint: disable=unused-import diff --git a/src/datadog/azext_datadog/_params.py b/src/datadog/azext_datadog/_params.py new file mode 100644 index 00000000000..cfcec717c9c --- /dev/null +++ b/src/datadog/azext_datadog/_params.py @@ -0,0 +1,13 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: disable=too-many-lines +# pylint: disable=too-many-statements + + +def load_arguments(self, _): # pylint: disable=unused-argument + pass diff --git a/src/datadog/azext_datadog/generated/_validators.py b/src/datadog/azext_datadog/aaz/__init__.py similarity index 55% rename from src/datadog/azext_datadog/generated/_validators.py rename to src/datadog/azext_datadog/aaz/__init__.py index b33a44c1ebf..5757aea3175 100644 --- a/src/datadog/azext_datadog/generated/_validators.py +++ b/src/datadog/azext_datadog/aaz/__init__.py @@ -1,9 +1,6 @@ -# -------------------------------------------------------------------------- +# -------------------------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. +# Licensed under the MIT License. See License.txt in the project root for license information. # -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/__init__.py b/src/datadog/azext_datadog/aaz/latest/__init__.py similarity index 50% rename from src/datadog/azext_datadog/vendored_sdks/datadog/aio/__init__.py rename to src/datadog/azext_datadog/aaz/latest/__init__.py index b43d36247a5..f6acc11aa4e 100644 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/__init__.py +++ b/src/datadog/azext_datadog/aaz/latest/__init__.py @@ -1,10 +1,10 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- +# -------------------------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa -from ._microsoft_datadog_client import MicrosoftDatadogClient -__all__ = ['MicrosoftDatadogClient'] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/__cmd_group.py b/src/datadog/azext_datadog/aaz/latest/datadog/__cmd_group.py new file mode 100644 index 00000000000..65167a3dbd9 --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/__cmd_group.py @@ -0,0 +1,23 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command_group( + "datadog", +) +class __CMDGroup(AAZCommandGroup): + """Manage Datadog + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/__init__.py b/src/datadog/azext_datadog/aaz/latest/datadog/__init__.py new file mode 100644 index 00000000000..5a9d61963d6 --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/__init__.py @@ -0,0 +1,11 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from .__cmd_group import * diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/monitor/__cmd_group.py b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/__cmd_group.py new file mode 100644 index 00000000000..062e395544e --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/__cmd_group.py @@ -0,0 +1,23 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command_group( + "datadog monitor", +) +class __CMDGroup(AAZCommandGroup): + """Provides a set of commands to manage Datadog monitor resources in your Azure subscription, enabling integration and observability of your Azure resources through Datadog. + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/monitor/__init__.py b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/__init__.py new file mode 100644 index 00000000000..6faf365426e --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/__init__.py @@ -0,0 +1,24 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from .__cmd_group import * +from ._create import * +from ._delete import * +from ._get_default_key import * +from ._list import * +from ._list_api_key import * +from ._list_host import * +from ._list_linked_resource import * +from ._list_monitored_resource import * +from ._refresh_set_password_link import * +from ._set_default_key import * +from ._show import * +from ._update import * +from ._wait import * diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_create.py b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_create.py new file mode 100644 index 00000000000..d374d447c9c --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_create.py @@ -0,0 +1,447 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog monitor create", +) +class Create(AAZCommand): + """Creates a new Datadog monitor resource in your Azure subscription. This sets up the integration between Azure and your Datadog account, enabling observability and monitoring of your Azure resources through Datadog. + + :example: Monitors_Create + az datadog monitor create --name "myMonitor" --resource-group "myResourceGroup" --location "West US 2" --tags Environment="Dev" --user-info name="Alice" email-address="alice@microsoft.com" phone-number="123-456-7890" --type "SystemAssigned" --sku-name "payg_v2_Monthly" + + :example: Monitors creation with linking to Datadog organization. + az datadog monitor create --name "myMonitor" --resource-group "myResourceGroup" --location "West US 2" --datadog-organization-properties api-key=XX application-key=XX --tags Environment="Dev" --user-info name="Alice" email-address="alice@microsoft.com" phone-number="123-456-7890" --type "SystemAssigned" --sku-name "Linked" + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}", "2021-03-01"], + ] + } + + AZ_SUPPORT_NO_WAIT = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_lro_poller(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + + # define Arg Group "Body" + + _args_schema = cls._args_schema + _args_schema.identity = AAZObjectArg( + options=["--identity"], + arg_group="Body", + ) + _args_schema.location = AAZResourceLocationArg( + arg_group="Body", + fmt=AAZResourceLocationArgFormat( + resource_group_arg="resource_group", + ), + ) + _args_schema.sku = AAZObjectArg( + options=["--sku"], + arg_group="Body", + ) + _args_schema.tags = AAZDictArg( + options=["--tags"], + arg_group="Body", + ) + + identity = cls._args_schema.identity + identity.type = AAZStrArg( + options=["type"], + help="Identity type", + enum={"SystemAssigned": "SystemAssigned", "UserAssigned": "UserAssigned"}, + ) + + sku = cls._args_schema.sku + sku.name = AAZStrArg( + options=["name"], + help="Name of the SKU.", + required=True, + ) + + tags = cls._args_schema.tags + tags.Element = AAZStrArg() + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.datadog_organization_properties = AAZObjectArg( + options=["--datadog-organization-properties"], + arg_group="Properties", + help="Datadog organization properties", + ) + _args_schema.monitoring_status = AAZStrArg( + options=["--monitoring-status"], + arg_group="Properties", + help="Flag specifying if the resource monitoring is enabled or disabled.", + default="Enabled", + enum={"Disabled": "Disabled", "Enabled": "Enabled"}, + ) + _args_schema.user_info = AAZObjectArg( + options=["--user-info"], + arg_group="Properties", + help="User info", + ) + + datadog_organization_properties = cls._args_schema.datadog_organization_properties + datadog_organization_properties.api_key = AAZStrArg( + options=["api-key"], + help="Api key associated to the Datadog organization.", + ) + datadog_organization_properties.application_key = AAZStrArg( + options=["application-key"], + help="Application key associated to the Datadog organization.", + ) + datadog_organization_properties.enterprise_app_id = AAZStrArg( + options=["enterprise-app-id"], + help="The Id of the Enterprise App used for Single sign on.", + ) + datadog_organization_properties.linking_auth_code = AAZStrArg( + options=["linking-auth-code"], + help="The auth code used to linking to an existing datadog organization.", + ) + datadog_organization_properties.linking_client_id = AAZStrArg( + options=["linking-client-id"], + help="The client_id from an existing in exchange for an auth token to link organization.", + ) + datadog_organization_properties.redirect_uri = AAZStrArg( + options=["redirect-uri"], + help="The redirect uri for linking.", + ) + + user_info = cls._args_schema.user_info + user_info.email_address = AAZStrArg( + options=["email-address"], + help="Email of the user used by Datadog for contacting them if needed", + fmt=AAZStrArgFormat( + pattern="^[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9-]+\\.)+[A-Za-z]{2,}$", + ), + ) + user_info.name = AAZStrArg( + options=["name"], + help="Name of the user", + fmt=AAZStrArgFormat( + max_length=50, + ), + ) + user_info.phone_number = AAZStrArg( + options=["phone-number"], + help="Phone number of the user used by Datadog for contacting them if needed", + fmt=AAZStrArgFormat( + max_length=40, + ), + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + yield self.MonitorsCreate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class MonitorsCreate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [202]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + if session.http_response.status_code in [200, 201]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + typ=AAZObjectType, + typ_kwargs={"flags": {"client_flatten": True}} + ) + _builder.set_prop("identity", AAZObjectType, ".identity") + _builder.set_prop("location", AAZStrType, ".location", typ_kwargs={"flags": {"required": True}}) + _builder.set_prop("properties", AAZObjectType) + _builder.set_prop("sku", AAZObjectType, ".sku") + _builder.set_prop("tags", AAZDictType, ".tags") + + identity = _builder.get(".identity") + if identity is not None: + identity.set_prop("type", AAZStrType, ".type") + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("datadogOrganizationProperties", AAZObjectType, ".datadog_organization_properties") + properties.set_prop("monitoringStatus", AAZStrType, ".monitoring_status") + properties.set_prop("userInfo", AAZObjectType, ".user_info", typ_kwargs={"flags": {"secret": True}}) + + datadog_organization_properties = _builder.get(".properties.datadogOrganizationProperties") + if datadog_organization_properties is not None: + datadog_organization_properties.set_prop("apiKey", AAZStrType, ".api_key", typ_kwargs={"flags": {"secret": True}}) + datadog_organization_properties.set_prop("applicationKey", AAZStrType, ".application_key", typ_kwargs={"flags": {"secret": True}}) + datadog_organization_properties.set_prop("enterpriseAppId", AAZStrType, ".enterprise_app_id") + datadog_organization_properties.set_prop("linkingAuthCode", AAZStrType, ".linking_auth_code", typ_kwargs={"flags": {"secret": True}}) + datadog_organization_properties.set_prop("linkingClientId", AAZStrType, ".linking_client_id", typ_kwargs={"flags": {"secret": True}}) + datadog_organization_properties.set_prop("redirectUri", AAZStrType, ".redirect_uri") + + user_info = _builder.get(".properties.userInfo") + if user_info is not None: + user_info.set_prop("emailAddress", AAZStrType, ".email_address") + user_info.set_prop("name", AAZStrType, ".name") + user_info.set_prop("phoneNumber", AAZStrType, ".phone_number") + + sku = _builder.get(".sku") + if sku is not None: + sku.set_prop("name", AAZStrType, ".name", typ_kwargs={"flags": {"required": True}}) + + tags = _builder.get(".tags") + if tags is not None: + tags.set_elements(AAZStrType, ".") + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + + _schema_on_200_201 = cls._schema_on_200_201 + _schema_on_200_201.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.identity = AAZObjectType() + _schema_on_200_201.location = AAZStrType( + flags={"required": True}, + ) + _schema_on_200_201.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.properties = AAZObjectType() + _schema_on_200_201.sku = AAZObjectType() + _schema_on_200_201.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200_201.tags = AAZDictType() + _schema_on_200_201.type = AAZStrType( + flags={"read_only": True}, + ) + + identity = cls._schema_on_200_201.identity + identity.principal_id = AAZStrType( + serialized_name="principalId", + flags={"read_only": True}, + ) + identity.tenant_id = AAZStrType( + serialized_name="tenantId", + flags={"read_only": True}, + ) + identity.type = AAZStrType() + + properties = cls._schema_on_200_201.properties + properties.datadog_organization_properties = AAZObjectType( + serialized_name="datadogOrganizationProperties", + ) + properties.liftr_resource_category = AAZStrType( + serialized_name="liftrResourceCategory", + flags={"read_only": True}, + ) + properties.liftr_resource_preference = AAZIntType( + serialized_name="liftrResourcePreference", + flags={"read_only": True}, + ) + properties.marketplace_subscription_status = AAZStrType( + serialized_name="marketplaceSubscriptionStatus", + flags={"read_only": True}, + ) + properties.monitoring_status = AAZStrType( + serialized_name="monitoringStatus", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.user_info = AAZObjectType( + serialized_name="userInfo", + flags={"secret": True}, + ) + + datadog_organization_properties = cls._schema_on_200_201.properties.datadog_organization_properties + datadog_organization_properties.id = AAZStrType( + flags={"read_only": True}, + ) + datadog_organization_properties.name = AAZStrType( + flags={"read_only": True}, + ) + + user_info = cls._schema_on_200_201.properties.user_info + user_info.email_address = AAZStrType( + serialized_name="emailAddress", + ) + user_info.name = AAZStrType() + user_info.phone_number = AAZStrType( + serialized_name="phoneNumber", + ) + + sku = cls._schema_on_200_201.sku + sku.name = AAZStrType( + flags={"required": True}, + ) + + system_data = cls._schema_on_200_201.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = cls._schema_on_200_201.tags + tags.Element = AAZStrType() + + return cls._schema_on_200_201 + + +class _CreateHelper: + """Helper class for Create""" + + +__all__ = ["Create"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_delete.py b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_delete.py new file mode 100644 index 00000000000..e25fd4b9d7a --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_delete.py @@ -0,0 +1,163 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog monitor delete", + confirmation="Are you sure you want to perform this operation?", +) +class Delete(AAZCommand): + """Deletes an existing Datadog monitor resource from your Azure subscription, removing the integration and stopping the observability of your Azure resources through Datadog. + + :example: Monitors_Delete + az datadog monitor delete --resource-group myResourceGroup --monitor-name myMonitor + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}", "2021-03-01"], + ] + } + + AZ_SUPPORT_NO_WAIT = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_lro_poller(self._execute_operations, None) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + yield self.MonitorsDelete(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + class MonitorsDelete(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [202]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + if session.http_response.status_code in [200]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + if session.http_response.status_code in [204]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_204, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}", + **self.url_parameters + ) + + @property + def method(self): + return "DELETE" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + def on_200(self, session): + pass + + def on_204(self, session): + pass + + +class _DeleteHelper: + """Helper class for Delete""" + + +__all__ = ["Delete"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_get_default_key.py b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_get_default_key.py new file mode 100644 index 00000000000..baa2114af72 --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_get_default_key.py @@ -0,0 +1,172 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog monitor get-default-key", +) +class GetDefaultKey(AAZCommand): + """Fetches the default Datadog API key associated with your monitor resource, which is used for authenticating and sending telemetry data from Azure to Datadog. + + :example: Monitors_GetDefaultKey + az datadog monitor get-default-key --resource-group myResourceGroup --monitor-name myMonitor + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}/getdefaultkey", "2021-03-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.MonitorsGetDefaultKey(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class MonitorsGetDefaultKey(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/getDefaultKey", + **self.url_parameters + ) + + @property + def method(self): + return "POST" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.created = AAZStrType() + _schema_on_200.created_by = AAZStrType( + serialized_name="createdBy", + ) + _schema_on_200.key = AAZStrType( + flags={"required": True}, + ) + _schema_on_200.name = AAZStrType() + + return cls._schema_on_200 + + +class _GetDefaultKeyHelper: + """Helper class for GetDefaultKey""" + + +__all__ = ["GetDefaultKey"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_list.py b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_list.py new file mode 100644 index 00000000000..57332ac04fa --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_list.py @@ -0,0 +1,462 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog monitor list", +) +class List(AAZCommand): + """Retrieves a list of all Datadog monitor resources either within a specific resource group or across the entire subscription, helping you quickly audit and manage your monitoring setup. + + :example: Monitors_List + az datadog monitor list [--resource-group] + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/providers/microsoft.datadog/monitors", "2021-03-01"], + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors", "2021-03-01"], + ] + } + + AZ_SUPPORT_PAGINATION = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_paging(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.resource_group = AAZResourceGroupNameArg() + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + condition_0 = has_value(self.ctx.subscription_id) and has_value(self.ctx.args.resource_group) is not True + condition_1 = has_value(self.ctx.args.resource_group) and has_value(self.ctx.subscription_id) + if condition_0: + self.MonitorsList(ctx=self.ctx)() + if condition_1: + self.MonitorsListByResourceGroup(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True) + next_link = self.deserialize_output(self.ctx.vars.instance.next_link) + return result, next_link + + class MonitorsList(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/providers/Microsoft.Datadog/monitors", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.identity = AAZObjectType() + _element.location = AAZStrType( + flags={"required": True}, + ) + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType() + _element.sku = AAZObjectType() + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _element.tags = AAZDictType() + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + identity = cls._schema_on_200.value.Element.identity + identity.principal_id = AAZStrType( + serialized_name="principalId", + flags={"read_only": True}, + ) + identity.tenant_id = AAZStrType( + serialized_name="tenantId", + flags={"read_only": True}, + ) + identity.type = AAZStrType() + + properties = cls._schema_on_200.value.Element.properties + properties.datadog_organization_properties = AAZObjectType( + serialized_name="datadogOrganizationProperties", + ) + properties.liftr_resource_category = AAZStrType( + serialized_name="liftrResourceCategory", + flags={"read_only": True}, + ) + properties.liftr_resource_preference = AAZIntType( + serialized_name="liftrResourcePreference", + flags={"read_only": True}, + ) + properties.marketplace_subscription_status = AAZStrType( + serialized_name="marketplaceSubscriptionStatus", + flags={"read_only": True}, + ) + properties.monitoring_status = AAZStrType( + serialized_name="monitoringStatus", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.user_info = AAZObjectType( + serialized_name="userInfo", + flags={"secret": True}, + ) + + datadog_organization_properties = cls._schema_on_200.value.Element.properties.datadog_organization_properties + datadog_organization_properties.id = AAZStrType( + flags={"read_only": True}, + ) + datadog_organization_properties.name = AAZStrType( + flags={"read_only": True}, + ) + + user_info = cls._schema_on_200.value.Element.properties.user_info + user_info.email_address = AAZStrType( + serialized_name="emailAddress", + ) + user_info.name = AAZStrType() + user_info.phone_number = AAZStrType( + serialized_name="phoneNumber", + ) + + sku = cls._schema_on_200.value.Element.sku + sku.name = AAZStrType( + flags={"required": True}, + ) + + system_data = cls._schema_on_200.value.Element.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = cls._schema_on_200.value.Element.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + class MonitorsListByResourceGroup(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.identity = AAZObjectType() + _element.location = AAZStrType( + flags={"required": True}, + ) + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType() + _element.sku = AAZObjectType() + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _element.tags = AAZDictType() + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + identity = cls._schema_on_200.value.Element.identity + identity.principal_id = AAZStrType( + serialized_name="principalId", + flags={"read_only": True}, + ) + identity.tenant_id = AAZStrType( + serialized_name="tenantId", + flags={"read_only": True}, + ) + identity.type = AAZStrType() + + properties = cls._schema_on_200.value.Element.properties + properties.datadog_organization_properties = AAZObjectType( + serialized_name="datadogOrganizationProperties", + ) + properties.liftr_resource_category = AAZStrType( + serialized_name="liftrResourceCategory", + flags={"read_only": True}, + ) + properties.liftr_resource_preference = AAZIntType( + serialized_name="liftrResourcePreference", + flags={"read_only": True}, + ) + properties.marketplace_subscription_status = AAZStrType( + serialized_name="marketplaceSubscriptionStatus", + flags={"read_only": True}, + ) + properties.monitoring_status = AAZStrType( + serialized_name="monitoringStatus", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.user_info = AAZObjectType( + serialized_name="userInfo", + flags={"secret": True}, + ) + + datadog_organization_properties = cls._schema_on_200.value.Element.properties.datadog_organization_properties + datadog_organization_properties.id = AAZStrType( + flags={"read_only": True}, + ) + datadog_organization_properties.name = AAZStrType( + flags={"read_only": True}, + ) + + user_info = cls._schema_on_200.value.Element.properties.user_info + user_info.email_address = AAZStrType( + serialized_name="emailAddress", + ) + user_info.name = AAZStrType() + user_info.phone_number = AAZStrType( + serialized_name="phoneNumber", + ) + + sku = cls._schema_on_200.value.Element.sku + sku.name = AAZStrType( + flags={"required": True}, + ) + + system_data = cls._schema_on_200.value.Element.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = cls._schema_on_200.value.Element.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + +class _ListHelper: + """Helper class for List""" + + +__all__ = ["List"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_list_api_key.py b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_list_api_key.py new file mode 100644 index 00000000000..77672095b72 --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_list_api_key.py @@ -0,0 +1,182 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog monitor list-api-key", +) +class ListApiKey(AAZCommand): + """Lists all API keys associated with a specific Datadog monitor resource, allowing you to manage and audit the keys used for authentication and data transmission. + + :example: Monitors_ListApiKeys + az datadog monitor list-api-key --resource-group myResourceGroup --monitor-name myMonitor + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}/listapikeys", "2021-03-01"], + ] + } + + AZ_SUPPORT_PAGINATION = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_paging(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.MonitorsListApiKeys(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True) + next_link = self.deserialize_output(self.ctx.vars.instance.next_link) + return result, next_link + + class MonitorsListApiKeys(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/listApiKeys", + **self.url_parameters + ) + + @property + def method(self): + return "POST" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.created = AAZStrType() + _element.created_by = AAZStrType( + serialized_name="createdBy", + ) + _element.key = AAZStrType( + flags={"required": True}, + ) + _element.name = AAZStrType() + + return cls._schema_on_200 + + +class _ListApiKeyHelper: + """Helper class for ListApiKey""" + + +__all__ = ["ListApiKey"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_list_host.py b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_list_host.py new file mode 100644 index 00000000000..6413fe88f4c --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_list_host.py @@ -0,0 +1,207 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog monitor list-host", +) +class ListHost(AAZCommand): + """Lists all hosts being monitored by a specific Datadog monitor resource, providing visibility into the infrastructure components under observation. + + :example: Monitors_ListHosts + az datadog monitor list-host --resource-group myResourceGroup --monitor-name myMonitor + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}/listhosts", "2021-03-01"], + ] + } + + AZ_SUPPORT_PAGINATION = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_paging(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.MonitorsListHosts(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True) + next_link = self.deserialize_output(self.ctx.vars.instance.next_link) + return result, next_link + + class MonitorsListHosts(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/listHosts", + **self.url_parameters + ) + + @property + def method(self): + return "POST" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.aliases = AAZListType() + _element.apps = AAZListType() + _element.meta = AAZObjectType() + _element.name = AAZStrType() + + aliases = cls._schema_on_200.value.Element.aliases + aliases.Element = AAZStrType() + + apps = cls._schema_on_200.value.Element.apps + apps.Element = AAZStrType() + + meta = cls._schema_on_200.value.Element.meta + meta.agent_version = AAZStrType( + serialized_name="agentVersion", + ) + meta.install_method = AAZObjectType( + serialized_name="installMethod", + ) + meta.logs_agent = AAZObjectType( + serialized_name="logsAgent", + ) + + install_method = cls._schema_on_200.value.Element.meta.install_method + install_method.installer_version = AAZStrType( + serialized_name="installerVersion", + ) + install_method.tool = AAZStrType() + install_method.tool_version = AAZStrType( + serialized_name="toolVersion", + ) + + logs_agent = cls._schema_on_200.value.Element.meta.logs_agent + logs_agent.transport = AAZStrType() + + return cls._schema_on_200 + + +class _ListHostHelper: + """Helper class for ListHost""" + + +__all__ = ["ListHost"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_list_linked_resource.py b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_list_linked_resource.py new file mode 100644 index 00000000000..d8bc9a8ef1a --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_list_linked_resource.py @@ -0,0 +1,175 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog monitor list-linked-resource", +) +class ListLinkedResource(AAZCommand): + """Lists all Azure resources that are linked to the same Datadog organization as the specified monitor resource, helping you understand the scope of integration. + + :example: Monitors_ListLinkedResources + az datadog monitor list-linked-resource --resource-group myResourceGroup --monitor-name myMonitor + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}/listlinkedresources", "2021-03-01"], + ] + } + + AZ_SUPPORT_PAGINATION = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_paging(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.MonitorsListLinkedResources(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True) + next_link = self.deserialize_output(self.ctx.vars.instance.next_link) + return result, next_link + + class MonitorsListLinkedResources(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/listLinkedResources", + **self.url_parameters + ) + + @property + def method(self): + return "POST" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType() + + return cls._schema_on_200 + + +class _ListLinkedResourceHelper: + """Helper class for ListLinkedResource""" + + +__all__ = ["ListLinkedResource"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_list_monitored_resource.py b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_list_monitored_resource.py new file mode 100644 index 00000000000..031b940b913 --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_list_monitored_resource.py @@ -0,0 +1,187 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog monitor list-monitored-resource", +) +class ListMonitoredResource(AAZCommand): + """Lists all Azure resources that are currently being monitored by the specified Datadog monitor resource, providing insight into the coverage of your observability setup. + + :example: Monitors_ListMonitoredResources + az datadog monitor list-monitored-resource --resource-group myResourceGroup --monitor-name myMonitor + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}/listmonitoredresources", "2021-03-01"], + ] + } + + AZ_SUPPORT_PAGINATION = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_paging(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.MonitorsListMonitoredResources(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True) + next_link = self.deserialize_output(self.ctx.vars.instance.next_link) + return result, next_link + + class MonitorsListMonitoredResources(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/listMonitoredResources", + **self.url_parameters + ) + + @property + def method(self): + return "POST" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType() + _element.reason_for_logs_status = AAZStrType( + serialized_name="reasonForLogsStatus", + ) + _element.reason_for_metrics_status = AAZStrType( + serialized_name="reasonForMetricsStatus", + ) + _element.sending_logs = AAZBoolType( + serialized_name="sendingLogs", + ) + _element.sending_metrics = AAZBoolType( + serialized_name="sendingMetrics", + ) + + return cls._schema_on_200 + + +class _ListMonitoredResourceHelper: + """Helper class for ListMonitoredResource""" + + +__all__ = ["ListMonitoredResource"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_refresh_set_password_link.py b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_refresh_set_password_link.py new file mode 100644 index 00000000000..6d5c98cecd2 --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_refresh_set_password_link.py @@ -0,0 +1,167 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog monitor refresh-set-password-link", +) +class RefreshSetPasswordLink(AAZCommand): + """Refreshes the link used to set the password for the Datadog monitor resource and returns the latest link, ensuring secure access management. + + :example: Monitors_RefreshSetPasswordLink + az datadog monitor refresh-set-password-link --resource-group myResourceGroup --monitor-name myMonitor + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}/refreshsetpasswordlink", "2021-03-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.MonitorsRefreshSetPasswordLink(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class MonitorsRefreshSetPasswordLink(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/refreshSetPasswordLink", + **self.url_parameters + ) + + @property + def method(self): + return "POST" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.set_password_link = AAZStrType( + serialized_name="setPasswordLink", + ) + + return cls._schema_on_200 + + +class _RefreshSetPasswordLinkHelper: + """Helper class for RefreshSetPasswordLink""" + + +__all__ = ["RefreshSetPasswordLink"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_set_default_key.py b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_set_default_key.py new file mode 100644 index 00000000000..1a46e089a4c --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_set_default_key.py @@ -0,0 +1,180 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog monitor set-default-key", +) +class SetDefaultKey(AAZCommand): + """Sets the default Datadog API key for the specified monitor resource, which will be used for authenticating and sending telemetry data from Azure to Datadog. + + :example: Monitors_SetDefaultKey + az datadog monitor set-default-key --resource-group myResourceGroup --monitor-name myMonitor --key 1111111111111111aaaaaaaaaaaaaaaa + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}/setdefaultkey", "2021-03-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return None + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + + # define Arg Group "Body" + + _args_schema = cls._args_schema + _args_schema.created = AAZStrArg( + options=["--created"], + arg_group="Body", + help="The time of creation of the API key.", + ) + _args_schema.created_by = AAZStrArg( + options=["--created-by"], + arg_group="Body", + help="The user that created the API key.", + ) + _args_schema.key = AAZStrArg( + options=["--key"], + arg_group="Body", + help="The value of the API key.", + ) + _args_schema.key_name = AAZStrArg( + options=["--key-name"], + arg_group="Body", + help="The name of the API key.", + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.MonitorsSetDefaultKey(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + class MonitorsSetDefaultKey(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/setDefaultKey", + **self.url_parameters + ) + + @property + def method(self): + return "POST" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + typ=AAZObjectType, + typ_kwargs={"flags": {"client_flatten": True}} + ) + _builder.set_prop("created", AAZStrType, ".created") + _builder.set_prop("createdBy", AAZStrType, ".created_by") + _builder.set_prop("key", AAZStrType, ".key", typ_kwargs={"flags": {"required": True}}) + _builder.set_prop("name", AAZStrType, ".key_name") + + return self.serialize_content(_content_value) + + def on_200(self, session): + pass + + +class _SetDefaultKeyHelper: + """Helper class for SetDefaultKey""" + + +__all__ = ["SetDefaultKey"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_show.py b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_show.py new file mode 100644 index 00000000000..b304b422930 --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_show.py @@ -0,0 +1,268 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog monitor show", +) +class Show(AAZCommand): + """Retrieves the properties and configuration details of a specific Datadog monitor resource, providing insight into its setup and status. + + :example: Monitors_Get + az datadog monitor show --resource-group myResourceGroup --monitor-name myMonitor + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}", "2021-03-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.MonitorsGet(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class MonitorsGet(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.identity = AAZObjectType() + _schema_on_200.location = AAZStrType( + flags={"required": True}, + ) + _schema_on_200.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType() + _schema_on_200.sku = AAZObjectType() + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.tags = AAZDictType() + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + identity = cls._schema_on_200.identity + identity.principal_id = AAZStrType( + serialized_name="principalId", + flags={"read_only": True}, + ) + identity.tenant_id = AAZStrType( + serialized_name="tenantId", + flags={"read_only": True}, + ) + identity.type = AAZStrType() + + properties = cls._schema_on_200.properties + properties.datadog_organization_properties = AAZObjectType( + serialized_name="datadogOrganizationProperties", + ) + properties.liftr_resource_category = AAZStrType( + serialized_name="liftrResourceCategory", + flags={"read_only": True}, + ) + properties.liftr_resource_preference = AAZIntType( + serialized_name="liftrResourcePreference", + flags={"read_only": True}, + ) + properties.marketplace_subscription_status = AAZStrType( + serialized_name="marketplaceSubscriptionStatus", + flags={"read_only": True}, + ) + properties.monitoring_status = AAZStrType( + serialized_name="monitoringStatus", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.user_info = AAZObjectType( + serialized_name="userInfo", + flags={"secret": True}, + ) + + datadog_organization_properties = cls._schema_on_200.properties.datadog_organization_properties + datadog_organization_properties.id = AAZStrType( + flags={"read_only": True}, + ) + datadog_organization_properties.name = AAZStrType( + flags={"read_only": True}, + ) + + user_info = cls._schema_on_200.properties.user_info + user_info.email_address = AAZStrType( + serialized_name="emailAddress", + ) + user_info.name = AAZStrType() + user_info.phone_number = AAZStrType( + serialized_name="phoneNumber", + ) + + sku = cls._schema_on_200.sku + sku.name = AAZStrType( + flags={"required": True}, + ) + + system_data = cls._schema_on_200.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = cls._schema_on_200.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + +class _ShowHelper: + """Helper class for Show""" + + +__all__ = ["Show"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_update.py b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_update.py new file mode 100644 index 00000000000..37b23c133dd --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_update.py @@ -0,0 +1,561 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog monitor update", +) +class Update(AAZCommand): + """Updates the configuration of an existing Datadog monitor resource in your Azure subscription, allowing you to modify its settings and integration parameters. + + :example: Monitors_Update + az datadog monitor update --name "myMonitor" --tags Environment="Dev" --monitoring-status "Disabled" --resource-group "myResourceGroup" + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}", "2021-03-01"], + ] + } + + AZ_SUPPORT_NO_WAIT = True + + AZ_SUPPORT_GENERIC_UPDATE = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_lro_poller(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + + # define Arg Group "Body" + + _args_schema = cls._args_schema + _args_schema.identity = AAZObjectArg( + options=["--identity"], + arg_group="Body", + nullable=True, + ) + _args_schema.location = AAZResourceLocationArg( + arg_group="Body", + fmt=AAZResourceLocationArgFormat( + resource_group_arg="resource_group", + ), + ) + _args_schema.sku = AAZObjectArg( + options=["--sku"], + arg_group="Body", + nullable=True, + ) + _args_schema.tags = AAZDictArg( + options=["--tags"], + arg_group="Body", + nullable=True, + ) + + identity = cls._args_schema.identity + identity.type = AAZStrArg( + options=["type"], + help="Identity type", + nullable=True, + enum={"SystemAssigned": "SystemAssigned", "UserAssigned": "UserAssigned"}, + ) + + sku = cls._args_schema.sku + sku.name = AAZStrArg( + options=["name"], + help="Name of the SKU.", + ) + + tags = cls._args_schema.tags + tags.Element = AAZStrArg( + nullable=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.monitoring_status = AAZStrArg( + options=["--monitoring-status"], + arg_group="Properties", + help="Flag specifying if the resource monitoring is enabled or disabled.", + nullable=True, + enum={"Disabled": "Disabled", "Enabled": "Enabled"}, + ) + _args_schema.user_info = AAZObjectArg( + options=["--user-info"], + arg_group="Properties", + help="User info", + nullable=True, + ) + + user_info = cls._args_schema.user_info + user_info.email_address = AAZStrArg( + options=["email-address"], + help="Email of the user used by Datadog for contacting them if needed", + nullable=True, + fmt=AAZStrArgFormat( + pattern="^[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9-]+\\.)+[A-Za-z]{2,}$", + ), + ) + user_info.name = AAZStrArg( + options=["name"], + help="Name of the user", + nullable=True, + fmt=AAZStrArgFormat( + max_length=50, + ), + ) + user_info.phone_number = AAZStrArg( + options=["phone-number"], + help="Phone number of the user used by Datadog for contacting them if needed", + nullable=True, + fmt=AAZStrArgFormat( + max_length=40, + ), + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.MonitorsGet(ctx=self.ctx)() + self.pre_instance_update(self.ctx.vars.instance) + self.InstanceUpdateByJson(ctx=self.ctx)() + self.InstanceUpdateByGeneric(ctx=self.ctx)() + self.post_instance_update(self.ctx.vars.instance) + yield self.MonitorsCreate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + @register_callback + def pre_instance_update(self, instance): + pass + + @register_callback + def post_instance_update(self, instance): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class MonitorsGet(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + _UpdateHelper._build_schema_datadog_monitor_resource_read(cls._schema_on_200) + + return cls._schema_on_200 + + class MonitorsCreate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [202]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + if session.http_response.status_code in [200, 201]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + value=self.ctx.vars.instance, + ) + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + _UpdateHelper._build_schema_datadog_monitor_resource_read(cls._schema_on_200_201) + + return cls._schema_on_200_201 + + class InstanceUpdateByJson(AAZJsonInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance(self.ctx.vars.instance) + + def _update_instance(self, instance): + _instance_value, _builder = self.new_content_builder( + self.ctx.args, + value=instance, + typ=AAZObjectType + ) + _builder.set_prop("identity", AAZObjectType, ".identity") + _builder.set_prop("location", AAZStrType, ".location", typ_kwargs={"flags": {"required": True}}) + _builder.set_prop("properties", AAZObjectType) + _builder.set_prop("sku", AAZObjectType, ".sku") + _builder.set_prop("tags", AAZDictType, ".tags") + + identity = _builder.get(".identity") + if identity is not None: + identity.set_prop("type", AAZStrType, ".type") + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("monitoringStatus", AAZStrType, ".monitoring_status") + properties.set_prop("userInfo", AAZObjectType, ".user_info", typ_kwargs={"flags": {"secret": True}}) + + user_info = _builder.get(".properties.userInfo") + if user_info is not None: + user_info.set_prop("emailAddress", AAZStrType, ".email_address") + user_info.set_prop("name", AAZStrType, ".name") + user_info.set_prop("phoneNumber", AAZStrType, ".phone_number") + + sku = _builder.get(".sku") + if sku is not None: + sku.set_prop("name", AAZStrType, ".name", typ_kwargs={"flags": {"required": True}}) + + tags = _builder.get(".tags") + if tags is not None: + tags.set_elements(AAZStrType, ".") + + return _instance_value + + class InstanceUpdateByGeneric(AAZGenericInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance_by_generic( + self.ctx.vars.instance, + self.ctx.generic_update_args + ) + + +class _UpdateHelper: + """Helper class for Update""" + + _schema_datadog_monitor_resource_read = None + + @classmethod + def _build_schema_datadog_monitor_resource_read(cls, _schema): + if cls._schema_datadog_monitor_resource_read is not None: + _schema.id = cls._schema_datadog_monitor_resource_read.id + _schema.identity = cls._schema_datadog_monitor_resource_read.identity + _schema.location = cls._schema_datadog_monitor_resource_read.location + _schema.name = cls._schema_datadog_monitor_resource_read.name + _schema.properties = cls._schema_datadog_monitor_resource_read.properties + _schema.sku = cls._schema_datadog_monitor_resource_read.sku + _schema.system_data = cls._schema_datadog_monitor_resource_read.system_data + _schema.tags = cls._schema_datadog_monitor_resource_read.tags + _schema.type = cls._schema_datadog_monitor_resource_read.type + return + + cls._schema_datadog_monitor_resource_read = _schema_datadog_monitor_resource_read = AAZObjectType() + + datadog_monitor_resource_read = _schema_datadog_monitor_resource_read + datadog_monitor_resource_read.id = AAZStrType( + flags={"read_only": True}, + ) + datadog_monitor_resource_read.identity = AAZObjectType() + datadog_monitor_resource_read.location = AAZStrType( + flags={"required": True}, + ) + datadog_monitor_resource_read.name = AAZStrType( + flags={"read_only": True}, + ) + datadog_monitor_resource_read.properties = AAZObjectType() + datadog_monitor_resource_read.sku = AAZObjectType() + datadog_monitor_resource_read.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + datadog_monitor_resource_read.tags = AAZDictType() + datadog_monitor_resource_read.type = AAZStrType( + flags={"read_only": True}, + ) + + identity = _schema_datadog_monitor_resource_read.identity + identity.principal_id = AAZStrType( + serialized_name="principalId", + flags={"read_only": True}, + ) + identity.tenant_id = AAZStrType( + serialized_name="tenantId", + flags={"read_only": True}, + ) + identity.type = AAZStrType() + + properties = _schema_datadog_monitor_resource_read.properties + properties.datadog_organization_properties = AAZObjectType( + serialized_name="datadogOrganizationProperties", + ) + properties.liftr_resource_category = AAZStrType( + serialized_name="liftrResourceCategory", + flags={"read_only": True}, + ) + properties.liftr_resource_preference = AAZIntType( + serialized_name="liftrResourcePreference", + flags={"read_only": True}, + ) + properties.marketplace_subscription_status = AAZStrType( + serialized_name="marketplaceSubscriptionStatus", + flags={"read_only": True}, + ) + properties.monitoring_status = AAZStrType( + serialized_name="monitoringStatus", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.user_info = AAZObjectType( + serialized_name="userInfo", + flags={"secret": True}, + ) + + datadog_organization_properties = _schema_datadog_monitor_resource_read.properties.datadog_organization_properties + datadog_organization_properties.id = AAZStrType( + flags={"read_only": True}, + ) + datadog_organization_properties.name = AAZStrType( + flags={"read_only": True}, + ) + + user_info = _schema_datadog_monitor_resource_read.properties.user_info + user_info.email_address = AAZStrType( + serialized_name="emailAddress", + ) + user_info.name = AAZStrType() + user_info.phone_number = AAZStrType( + serialized_name="phoneNumber", + ) + + sku = _schema_datadog_monitor_resource_read.sku + sku.name = AAZStrType( + flags={"required": True}, + ) + + system_data = _schema_datadog_monitor_resource_read.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = _schema_datadog_monitor_resource_read.tags + tags.Element = AAZStrType() + + _schema.id = cls._schema_datadog_monitor_resource_read.id + _schema.identity = cls._schema_datadog_monitor_resource_read.identity + _schema.location = cls._schema_datadog_monitor_resource_read.location + _schema.name = cls._schema_datadog_monitor_resource_read.name + _schema.properties = cls._schema_datadog_monitor_resource_read.properties + _schema.sku = cls._schema_datadog_monitor_resource_read.sku + _schema.system_data = cls._schema_datadog_monitor_resource_read.system_data + _schema.tags = cls._schema_datadog_monitor_resource_read.tags + _schema.type = cls._schema_datadog_monitor_resource_read.type + + +__all__ = ["Update"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_wait.py b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_wait.py new file mode 100644 index 00000000000..99cb2027225 --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/monitor/_wait.py @@ -0,0 +1,264 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog monitor wait", +) +class Wait(AAZWaitCommand): + """Place the CLI in a waiting state until a condition is met. + """ + + _aaz_info = { + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}", "2021-03-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.MonitorsGet(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=False) + return result + + class MonitorsGet(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.identity = AAZObjectType() + _schema_on_200.location = AAZStrType( + flags={"required": True}, + ) + _schema_on_200.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType() + _schema_on_200.sku = AAZObjectType() + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.tags = AAZDictType() + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + identity = cls._schema_on_200.identity + identity.principal_id = AAZStrType( + serialized_name="principalId", + flags={"read_only": True}, + ) + identity.tenant_id = AAZStrType( + serialized_name="tenantId", + flags={"read_only": True}, + ) + identity.type = AAZStrType() + + properties = cls._schema_on_200.properties + properties.datadog_organization_properties = AAZObjectType( + serialized_name="datadogOrganizationProperties", + ) + properties.liftr_resource_category = AAZStrType( + serialized_name="liftrResourceCategory", + flags={"read_only": True}, + ) + properties.liftr_resource_preference = AAZIntType( + serialized_name="liftrResourcePreference", + flags={"read_only": True}, + ) + properties.marketplace_subscription_status = AAZStrType( + serialized_name="marketplaceSubscriptionStatus", + flags={"read_only": True}, + ) + properties.monitoring_status = AAZStrType( + serialized_name="monitoringStatus", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.user_info = AAZObjectType( + serialized_name="userInfo", + flags={"secret": True}, + ) + + datadog_organization_properties = cls._schema_on_200.properties.datadog_organization_properties + datadog_organization_properties.id = AAZStrType( + flags={"read_only": True}, + ) + datadog_organization_properties.name = AAZStrType( + flags={"read_only": True}, + ) + + user_info = cls._schema_on_200.properties.user_info + user_info.email_address = AAZStrType( + serialized_name="emailAddress", + ) + user_info.name = AAZStrType() + user_info.phone_number = AAZStrType( + serialized_name="phoneNumber", + ) + + sku = cls._schema_on_200.sku + sku.name = AAZStrType( + flags={"required": True}, + ) + + system_data = cls._schema_on_200.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + tags = cls._schema_on_200.tags + tags.Element = AAZStrType() + + return cls._schema_on_200 + + +class _WaitHelper: + """Helper class for Wait""" + + +__all__ = ["Wait"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/__cmd_group.py b/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/__cmd_group.py new file mode 100644 index 00000000000..c35e5205a00 --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/__cmd_group.py @@ -0,0 +1,23 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command_group( + "datadog sso-config", +) +class __CMDGroup(AAZCommandGroup): + """Provides a set of commands to manage Single Sign-On (SSO) configurations for Datadog monitor resources, enabling secure and streamlined access for users. + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/__init__.py b/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/__init__.py new file mode 100644 index 00000000000..629118c9446 --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/__init__.py @@ -0,0 +1,16 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from .__cmd_group import * +from ._create import * +from ._list import * +from ._show import * +from ._update import * +from ._wait import * diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/_create.py b/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/_create.py new file mode 100644 index 00000000000..0e9cf85a33b --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/_create.py @@ -0,0 +1,273 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog sso-config create", +) +class Create(AAZCommand): + """Sets up Single Sign-On (SSO) for your Datadog monitor resource, allowing users to log in to Datadog using their Azure Active Directory credentials for streamlined and secure access. + + :example: SingleSignOnConfigurations_CreateOrUpdate + az datadog sso-config create --resource-group myResourceGroup --monitor-name myMonitor --configuration-name default --single-sign-on-state Enable --enterprise-app-id 00000000-0000-0000-0000-000000000000 + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}/singlesignonconfigurations/{}", "2021-03-01"], + ] + } + + AZ_SUPPORT_NO_WAIT = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_lro_poller(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.configuration_name = AAZStrArg( + options=["--configuration-name"], + help="Configuration name", + required=True, + ) + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.enterprise_app_id = AAZStrArg( + options=["--enterprise-app-id"], + arg_group="Properties", + help="The Id of the Enterprise App used for Single sign-on.", + ) + _args_schema.single_sign_on_state = AAZStrArg( + options=["--single-sign-on-state"], + arg_group="Properties", + help="Various states of the SSO resource", + enum={"Disable": "Disable", "Enable": "Enable", "Existing": "Existing", "Initial": "Initial"}, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + yield self.SingleSignOnConfigurationsCreateOrUpdate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class SingleSignOnConfigurationsCreateOrUpdate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [202]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + if session.http_response.status_code in [200, 201]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/singleSignOnConfigurations/{configurationName}", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "configurationName", self.ctx.args.configuration_name, + required=True, + ), + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + typ=AAZObjectType, + typ_kwargs={"flags": {"client_flatten": True}} + ) + _builder.set_prop("properties", AAZObjectType) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("enterpriseAppId", AAZStrType, ".enterprise_app_id") + properties.set_prop("singleSignOnState", AAZStrType, ".single_sign_on_state") + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + + _schema_on_200_201 = cls._schema_on_200_201 + _schema_on_200_201.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200_201.properties = AAZObjectType() + _schema_on_200_201.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200_201.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200_201.properties + properties.enterprise_app_id = AAZStrType( + serialized_name="enterpriseAppId", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.single_sign_on_state = AAZStrType( + serialized_name="singleSignOnState", + ) + properties.single_sign_on_url = AAZStrType( + serialized_name="singleSignOnUrl", + flags={"read_only": True}, + ) + + system_data = cls._schema_on_200_201.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + return cls._schema_on_200_201 + + +class _CreateHelper: + """Helper class for Create""" + + +__all__ = ["Create"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/_list.py b/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/_list.py new file mode 100644 index 00000000000..05765570ffc --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/_list.py @@ -0,0 +1,224 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog sso-config list", +) +class List(AAZCommand): + """Lists all Single Sign-On (SSO) configurations associated with a specific Datadog monitor resource, helping you manage and audit access settings. + + :example: SingleSignOnConfigurations_List + az datadog sso-config list --resource-group myResourceGroup --monitor-name myMonitor + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}/singlesignonconfigurations", "2021-03-01"], + ] + } + + AZ_SUPPORT_PAGINATION = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_paging(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.SingleSignOnConfigurationsList(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True) + next_link = self.deserialize_output(self.ctx.vars.instance.next_link) + return result, next_link + + class SingleSignOnConfigurationsList(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/singleSignOnConfigurations", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType() + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.value.Element.properties + properties.enterprise_app_id = AAZStrType( + serialized_name="enterpriseAppId", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.single_sign_on_state = AAZStrType( + serialized_name="singleSignOnState", + ) + properties.single_sign_on_url = AAZStrType( + serialized_name="singleSignOnUrl", + flags={"read_only": True}, + ) + + system_data = cls._schema_on_200.value.Element.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + return cls._schema_on_200 + + +class _ListHelper: + """Helper class for List""" + + +__all__ = ["List"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/_show.py b/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/_show.py new file mode 100644 index 00000000000..f2b55764e60 --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/_show.py @@ -0,0 +1,224 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog sso-config show", +) +class Show(AAZCommand): + """Retrieves the details of the Single Sign-On (SSO) configuration for a specific Datadog monitor resource, providing insight into its setup and status. + + :example: SingleSignOnConfigurations_Get + az datadog sso-config show --resource-group myResourceGroup --monitor-name myMonitor --configuration-name default + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}/singlesignonconfigurations/{}", "2021-03-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.configuration_name = AAZStrArg( + options=["--configuration-name"], + help="Configuration name", + required=True, + id_part="child_name_1", + ) + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.SingleSignOnConfigurationsGet(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class SingleSignOnConfigurationsGet(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/singleSignOnConfigurations/{configurationName}", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "configurationName", self.ctx.args.configuration_name, + required=True, + ), + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType() + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.enterprise_app_id = AAZStrType( + serialized_name="enterpriseAppId", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.single_sign_on_state = AAZStrType( + serialized_name="singleSignOnState", + ) + properties.single_sign_on_url = AAZStrType( + serialized_name="singleSignOnUrl", + flags={"read_only": True}, + ) + + system_data = cls._schema_on_200.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + return cls._schema_on_200 + + +class _ShowHelper: + """Helper class for Show""" + + +__all__ = ["Show"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/_update.py b/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/_update.py new file mode 100644 index 00000000000..f96a1a744ac --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/_update.py @@ -0,0 +1,421 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog sso-config update", +) +class Update(AAZCommand): + """Updates the Single Sign-On (SSO) configuration for a specific Datadog monitor resource, allowing you to modify its settings and integration parameters. + + :example: SSO_update + az datadog sso-config update --resource-group myResourceGroup --monitor-name myMonitor --configuration-name default --single-sign-on-state Enable --enterprise-app-id 00000000-0000-0000-0000-000000000000 + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}/singlesignonconfigurations/{}", "2021-03-01"], + ] + } + + AZ_SUPPORT_NO_WAIT = True + + AZ_SUPPORT_GENERIC_UPDATE = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_lro_poller(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.configuration_name = AAZStrArg( + options=["--configuration-name"], + help="Configuration name", + required=True, + id_part="child_name_1", + ) + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.enterprise_app_id = AAZStrArg( + options=["--enterprise-app-id"], + arg_group="Properties", + help="The Id of the Enterprise App used for Single sign-on.", + nullable=True, + ) + _args_schema.single_sign_on_state = AAZStrArg( + options=["--single-sign-on-state"], + arg_group="Properties", + help="Various states of the SSO resource", + nullable=True, + enum={"Disable": "Disable", "Enable": "Enable", "Existing": "Existing", "Initial": "Initial"}, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.SingleSignOnConfigurationsGet(ctx=self.ctx)() + self.pre_instance_update(self.ctx.vars.instance) + self.InstanceUpdateByJson(ctx=self.ctx)() + self.InstanceUpdateByGeneric(ctx=self.ctx)() + self.post_instance_update(self.ctx.vars.instance) + yield self.SingleSignOnConfigurationsCreateOrUpdate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + @register_callback + def pre_instance_update(self, instance): + pass + + @register_callback + def post_instance_update(self, instance): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class SingleSignOnConfigurationsGet(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/singleSignOnConfigurations/{configurationName}", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "configurationName", self.ctx.args.configuration_name, + required=True, + ), + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + _UpdateHelper._build_schema_datadog_single_sign_on_resource_read(cls._schema_on_200) + + return cls._schema_on_200 + + class SingleSignOnConfigurationsCreateOrUpdate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [202]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + if session.http_response.status_code in [200, 201]: + return self.client.build_lro_polling( + self.ctx.args.no_wait, + session, + self.on_200_201, + self.on_error, + lro_options={"final-state-via": "azure-async-operation"}, + path_format_arguments=self.url_parameters, + ) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/singleSignOnConfigurations/{configurationName}", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "configurationName", self.ctx.args.configuration_name, + required=True, + ), + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + value=self.ctx.vars.instance, + ) + + return self.serialize_content(_content_value) + + def on_200_201(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200_201 + ) + + _schema_on_200_201 = None + + @classmethod + def _build_schema_on_200_201(cls): + if cls._schema_on_200_201 is not None: + return cls._schema_on_200_201 + + cls._schema_on_200_201 = AAZObjectType() + _UpdateHelper._build_schema_datadog_single_sign_on_resource_read(cls._schema_on_200_201) + + return cls._schema_on_200_201 + + class InstanceUpdateByJson(AAZJsonInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance(self.ctx.vars.instance) + + def _update_instance(self, instance): + _instance_value, _builder = self.new_content_builder( + self.ctx.args, + value=instance, + typ=AAZObjectType + ) + _builder.set_prop("properties", AAZObjectType) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("enterpriseAppId", AAZStrType, ".enterprise_app_id") + properties.set_prop("singleSignOnState", AAZStrType, ".single_sign_on_state") + + return _instance_value + + class InstanceUpdateByGeneric(AAZGenericInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance_by_generic( + self.ctx.vars.instance, + self.ctx.generic_update_args + ) + + +class _UpdateHelper: + """Helper class for Update""" + + _schema_datadog_single_sign_on_resource_read = None + + @classmethod + def _build_schema_datadog_single_sign_on_resource_read(cls, _schema): + if cls._schema_datadog_single_sign_on_resource_read is not None: + _schema.id = cls._schema_datadog_single_sign_on_resource_read.id + _schema.name = cls._schema_datadog_single_sign_on_resource_read.name + _schema.properties = cls._schema_datadog_single_sign_on_resource_read.properties + _schema.system_data = cls._schema_datadog_single_sign_on_resource_read.system_data + _schema.type = cls._schema_datadog_single_sign_on_resource_read.type + return + + cls._schema_datadog_single_sign_on_resource_read = _schema_datadog_single_sign_on_resource_read = AAZObjectType() + + datadog_single_sign_on_resource_read = _schema_datadog_single_sign_on_resource_read + datadog_single_sign_on_resource_read.id = AAZStrType( + flags={"read_only": True}, + ) + datadog_single_sign_on_resource_read.name = AAZStrType( + flags={"read_only": True}, + ) + datadog_single_sign_on_resource_read.properties = AAZObjectType() + datadog_single_sign_on_resource_read.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + datadog_single_sign_on_resource_read.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = _schema_datadog_single_sign_on_resource_read.properties + properties.enterprise_app_id = AAZStrType( + serialized_name="enterpriseAppId", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.single_sign_on_state = AAZStrType( + serialized_name="singleSignOnState", + ) + properties.single_sign_on_url = AAZStrType( + serialized_name="singleSignOnUrl", + flags={"read_only": True}, + ) + + system_data = _schema_datadog_single_sign_on_resource_read.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + _schema.id = cls._schema_datadog_single_sign_on_resource_read.id + _schema.name = cls._schema_datadog_single_sign_on_resource_read.name + _schema.properties = cls._schema_datadog_single_sign_on_resource_read.properties + _schema.system_data = cls._schema_datadog_single_sign_on_resource_read.system_data + _schema.type = cls._schema_datadog_single_sign_on_resource_read.type + + +__all__ = ["Update"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/_wait.py b/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/_wait.py new file mode 100644 index 00000000000..6d00d432379 --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/sso_config/_wait.py @@ -0,0 +1,220 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog sso-config wait", +) +class Wait(AAZWaitCommand): + """Place the CLI in a waiting state until a condition is met. + """ + + _aaz_info = { + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}/singlesignonconfigurations/{}", "2021-03-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.configuration_name = AAZStrArg( + options=["--configuration-name"], + help="Configuration name", + required=True, + id_part="child_name_1", + ) + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.SingleSignOnConfigurationsGet(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=False) + return result + + class SingleSignOnConfigurationsGet(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/singleSignOnConfigurations/{configurationName}", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "configurationName", self.ctx.args.configuration_name, + required=True, + ), + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType() + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.enterprise_app_id = AAZStrType( + serialized_name="enterpriseAppId", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + properties.single_sign_on_state = AAZStrType( + serialized_name="singleSignOnState", + ) + properties.single_sign_on_url = AAZStrType( + serialized_name="singleSignOnUrl", + flags={"read_only": True}, + ) + + system_data = cls._schema_on_200.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + return cls._schema_on_200 + + +class _WaitHelper: + """Helper class for Wait""" + + +__all__ = ["Wait"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/__cmd_group.py b/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/__cmd_group.py new file mode 100644 index 00000000000..6e6706d8447 --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/__cmd_group.py @@ -0,0 +1,23 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command_group( + "datadog tag-rule", +) +class __CMDGroup(AAZCommandGroup): + """Provides a set of commands to manage tag rules for Datadog monitor resources, allowing you to control which Azure resources are monitored based on their tags. + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/__init__.py b/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/__init__.py new file mode 100644 index 00000000000..464e9a9d209 --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/__init__.py @@ -0,0 +1,15 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from .__cmd_group import * +from ._create import * +from ._list import * +from ._show import * +from ._update import * diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/_create.py b/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/_create.py new file mode 100644 index 00000000000..a80829957cc --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/_create.py @@ -0,0 +1,389 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog tag-rule create", +) +class Create(AAZCommand): + """Creates a new set of tag rules for a specific Datadog monitor resource, determining which Azure resources are monitored based on their tags. + + :example: TagRules_CreateOrUpdate + az datadog tag-rule create --resource-group myResourceGroup --monitor-name myMonitor --rule-set-name default --log-rules "{send-aad-logs:False,send-subscription-logs:True,send-resource-logs:True,filtering-tags:[{name:Environment,value:Prod,action:Include},{name:Environment,value:Dev,action:Exclude}]}" --metric-rules "{filtering-tags:[]}" + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}/tagrules/{}", "2021-03-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.rule_set_name = AAZStrArg( + options=["--rule-set-name"], + help="Rule set name", + required=True, + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.log_rules = AAZObjectArg( + options=["--log-rules"], + arg_group="Properties", + help="Set of rules for sending logs for the Monitor resource.", + ) + _args_schema.metric_rules = AAZObjectArg( + options=["--metric-rules"], + arg_group="Properties", + help="Set of rules for sending metrics for the Monitor resource.", + ) + + log_rules = cls._args_schema.log_rules + log_rules.filtering_tags = AAZListArg( + options=["filtering-tags"], + help="List of filtering tags to be used for capturing logs. This only takes effect if SendResourceLogs flag is enabled. If empty, all resources will be captured. If only Exclude action is specified, the rules will apply to the list of all available resources. If Include actions are specified, the rules will only include resources with the associated tags.", + ) + log_rules.send_aad_logs = AAZBoolArg( + options=["send-aad-logs"], + help="Flag specifying if AAD logs should be sent for the Monitor resource.", + ) + log_rules.send_resource_logs = AAZBoolArg( + options=["send-resource-logs"], + help="Flag specifying if Azure resource logs should be sent for the Monitor resource.", + ) + log_rules.send_subscription_logs = AAZBoolArg( + options=["send-subscription-logs"], + help="Flag specifying if Azure subscription logs should be sent for the Monitor resource.", + ) + + filtering_tags = cls._args_schema.log_rules.filtering_tags + filtering_tags.Element = AAZObjectArg() + cls._build_args_filtering_tag_create(filtering_tags.Element) + + metric_rules = cls._args_schema.metric_rules + metric_rules.filtering_tags = AAZListArg( + options=["filtering-tags"], + help="List of filtering tags to be used for capturing metrics. If empty, all resources will be captured. If only Exclude action is specified, the rules will apply to the list of all available resources. If Include actions are specified, the rules will only include resources with the associated tags.", + ) + + filtering_tags = cls._args_schema.metric_rules.filtering_tags + filtering_tags.Element = AAZObjectArg() + cls._build_args_filtering_tag_create(filtering_tags.Element) + return cls._args_schema + + _args_filtering_tag_create = None + + @classmethod + def _build_args_filtering_tag_create(cls, _schema): + if cls._args_filtering_tag_create is not None: + _schema.action = cls._args_filtering_tag_create.action + _schema.name = cls._args_filtering_tag_create.name + _schema.value = cls._args_filtering_tag_create.value + return + + cls._args_filtering_tag_create = AAZObjectArg() + + filtering_tag_create = cls._args_filtering_tag_create + filtering_tag_create.action = AAZStrArg( + options=["action"], + help="Valid actions for a filtering tag. Exclusion takes priority over inclusion.", + enum={"Exclude": "Exclude", "Include": "Include"}, + ) + filtering_tag_create.name = AAZStrArg( + options=["name"], + help="The name (also known as the key) of the tag.", + ) + filtering_tag_create.value = AAZStrArg( + options=["value"], + help="The value of the tag.", + ) + + _schema.action = cls._args_filtering_tag_create.action + _schema.name = cls._args_filtering_tag_create.name + _schema.value = cls._args_filtering_tag_create.value + + def _execute_operations(self): + self.pre_operations() + self.TagRulesCreateOrUpdate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class TagRulesCreateOrUpdate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/tagRules/{ruleSetName}", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "ruleSetName", self.ctx.args.rule_set_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + typ=AAZObjectType, + typ_kwargs={"flags": {"client_flatten": True}} + ) + _builder.set_prop("properties", AAZObjectType) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("logRules", AAZObjectType, ".log_rules") + properties.set_prop("metricRules", AAZObjectType, ".metric_rules") + + log_rules = _builder.get(".properties.logRules") + if log_rules is not None: + log_rules.set_prop("filteringTags", AAZListType, ".filtering_tags") + log_rules.set_prop("sendAadLogs", AAZBoolType, ".send_aad_logs") + log_rules.set_prop("sendResourceLogs", AAZBoolType, ".send_resource_logs") + log_rules.set_prop("sendSubscriptionLogs", AAZBoolType, ".send_subscription_logs") + + filtering_tags = _builder.get(".properties.logRules.filteringTags") + if filtering_tags is not None: + _CreateHelper._build_schema_filtering_tag_create(filtering_tags.set_elements(AAZObjectType, ".")) + + metric_rules = _builder.get(".properties.metricRules") + if metric_rules is not None: + metric_rules.set_prop("filteringTags", AAZListType, ".filtering_tags") + + filtering_tags = _builder.get(".properties.metricRules.filteringTags") + if filtering_tags is not None: + _CreateHelper._build_schema_filtering_tag_create(filtering_tags.set_elements(AAZObjectType, ".")) + + return self.serialize_content(_content_value) + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType() + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.log_rules = AAZObjectType( + serialized_name="logRules", + ) + properties.metric_rules = AAZObjectType( + serialized_name="metricRules", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + + log_rules = cls._schema_on_200.properties.log_rules + log_rules.filtering_tags = AAZListType( + serialized_name="filteringTags", + ) + log_rules.send_aad_logs = AAZBoolType( + serialized_name="sendAadLogs", + ) + log_rules.send_resource_logs = AAZBoolType( + serialized_name="sendResourceLogs", + ) + log_rules.send_subscription_logs = AAZBoolType( + serialized_name="sendSubscriptionLogs", + ) + + filtering_tags = cls._schema_on_200.properties.log_rules.filtering_tags + filtering_tags.Element = AAZObjectType() + _CreateHelper._build_schema_filtering_tag_read(filtering_tags.Element) + + metric_rules = cls._schema_on_200.properties.metric_rules + metric_rules.filtering_tags = AAZListType( + serialized_name="filteringTags", + ) + + filtering_tags = cls._schema_on_200.properties.metric_rules.filtering_tags + filtering_tags.Element = AAZObjectType() + _CreateHelper._build_schema_filtering_tag_read(filtering_tags.Element) + + system_data = cls._schema_on_200.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + return cls._schema_on_200 + + +class _CreateHelper: + """Helper class for Create""" + + @classmethod + def _build_schema_filtering_tag_create(cls, _builder): + if _builder is None: + return + _builder.set_prop("action", AAZStrType, ".action") + _builder.set_prop("name", AAZStrType, ".name") + _builder.set_prop("value", AAZStrType, ".value") + + _schema_filtering_tag_read = None + + @classmethod + def _build_schema_filtering_tag_read(cls, _schema): + if cls._schema_filtering_tag_read is not None: + _schema.action = cls._schema_filtering_tag_read.action + _schema.name = cls._schema_filtering_tag_read.name + _schema.value = cls._schema_filtering_tag_read.value + return + + cls._schema_filtering_tag_read = _schema_filtering_tag_read = AAZObjectType() + + filtering_tag_read = _schema_filtering_tag_read + filtering_tag_read.action = AAZStrType() + filtering_tag_read.name = AAZStrType() + filtering_tag_read.value = AAZStrType() + + _schema.action = cls._schema_filtering_tag_read.action + _schema.name = cls._schema_filtering_tag_read.name + _schema.value = cls._schema_filtering_tag_read.value + + +__all__ = ["Create"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/_list.py b/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/_list.py new file mode 100644 index 00000000000..2f2f6d709df --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/_list.py @@ -0,0 +1,268 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog tag-rule list", +) +class List(AAZCommand): + """Lists all tag rules associated with a specific Datadog monitor resource, helping you manage and audit the rules that control resource monitoring. + + :example: TagRules_List + az datadog tag-rule list --resource-group myResourceGroup --monitor-name myMonitor + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}/tagrules", "2021-03-01"], + ] + } + + AZ_SUPPORT_PAGINATION = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_paging(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.TagRulesList(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True) + next_link = self.deserialize_output(self.ctx.vars.instance.next_link) + return result, next_link + + class TagRulesList(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/tagRules", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType() + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.value.Element.properties + properties.log_rules = AAZObjectType( + serialized_name="logRules", + ) + properties.metric_rules = AAZObjectType( + serialized_name="metricRules", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + + log_rules = cls._schema_on_200.value.Element.properties.log_rules + log_rules.filtering_tags = AAZListType( + serialized_name="filteringTags", + ) + log_rules.send_aad_logs = AAZBoolType( + serialized_name="sendAadLogs", + ) + log_rules.send_resource_logs = AAZBoolType( + serialized_name="sendResourceLogs", + ) + log_rules.send_subscription_logs = AAZBoolType( + serialized_name="sendSubscriptionLogs", + ) + + filtering_tags = cls._schema_on_200.value.Element.properties.log_rules.filtering_tags + filtering_tags.Element = AAZObjectType() + _ListHelper._build_schema_filtering_tag_read(filtering_tags.Element) + + metric_rules = cls._schema_on_200.value.Element.properties.metric_rules + metric_rules.filtering_tags = AAZListType( + serialized_name="filteringTags", + ) + + filtering_tags = cls._schema_on_200.value.Element.properties.metric_rules.filtering_tags + filtering_tags.Element = AAZObjectType() + _ListHelper._build_schema_filtering_tag_read(filtering_tags.Element) + + system_data = cls._schema_on_200.value.Element.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + return cls._schema_on_200 + + +class _ListHelper: + """Helper class for List""" + + _schema_filtering_tag_read = None + + @classmethod + def _build_schema_filtering_tag_read(cls, _schema): + if cls._schema_filtering_tag_read is not None: + _schema.action = cls._schema_filtering_tag_read.action + _schema.name = cls._schema_filtering_tag_read.name + _schema.value = cls._schema_filtering_tag_read.value + return + + cls._schema_filtering_tag_read = _schema_filtering_tag_read = AAZObjectType() + + filtering_tag_read = _schema_filtering_tag_read + filtering_tag_read.action = AAZStrType() + filtering_tag_read.name = AAZStrType() + filtering_tag_read.value = AAZStrType() + + _schema.action = cls._schema_filtering_tag_read.action + _schema.name = cls._schema_filtering_tag_read.name + _schema.value = cls._schema_filtering_tag_read.value + + +__all__ = ["List"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/_show.py b/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/_show.py new file mode 100644 index 00000000000..ce8c281d531 --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/_show.py @@ -0,0 +1,268 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog tag-rule show", +) +class Show(AAZCommand): + """Retrieves the details of the tag rules for a specific Datadog monitor resource, providing insight into its setup and status. + + :example: TagRules_Get + az datadog tag-rule show --resource-group myResourceGroup --monitor-name myMonitor --rule-set-name default + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}/tagrules/{}", "2021-03-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.rule_set_name = AAZStrArg( + options=["--rule-set-name"], + help="Rule set name", + required=True, + id_part="child_name_1", + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.TagRulesGet(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class TagRulesGet(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/tagRules/{ruleSetName}", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "ruleSetName", self.ctx.args.rule_set_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType() + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.log_rules = AAZObjectType( + serialized_name="logRules", + ) + properties.metric_rules = AAZObjectType( + serialized_name="metricRules", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + + log_rules = cls._schema_on_200.properties.log_rules + log_rules.filtering_tags = AAZListType( + serialized_name="filteringTags", + ) + log_rules.send_aad_logs = AAZBoolType( + serialized_name="sendAadLogs", + ) + log_rules.send_resource_logs = AAZBoolType( + serialized_name="sendResourceLogs", + ) + log_rules.send_subscription_logs = AAZBoolType( + serialized_name="sendSubscriptionLogs", + ) + + filtering_tags = cls._schema_on_200.properties.log_rules.filtering_tags + filtering_tags.Element = AAZObjectType() + _ShowHelper._build_schema_filtering_tag_read(filtering_tags.Element) + + metric_rules = cls._schema_on_200.properties.metric_rules + metric_rules.filtering_tags = AAZListType( + serialized_name="filteringTags", + ) + + filtering_tags = cls._schema_on_200.properties.metric_rules.filtering_tags + filtering_tags.Element = AAZObjectType() + _ShowHelper._build_schema_filtering_tag_read(filtering_tags.Element) + + system_data = cls._schema_on_200.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + return cls._schema_on_200 + + +class _ShowHelper: + """Helper class for Show""" + + _schema_filtering_tag_read = None + + @classmethod + def _build_schema_filtering_tag_read(cls, _schema): + if cls._schema_filtering_tag_read is not None: + _schema.action = cls._schema_filtering_tag_read.action + _schema.name = cls._schema_filtering_tag_read.name + _schema.value = cls._schema_filtering_tag_read.value + return + + cls._schema_filtering_tag_read = _schema_filtering_tag_read = AAZObjectType() + + filtering_tag_read = _schema_filtering_tag_read + filtering_tag_read.action = AAZStrType() + filtering_tag_read.name = AAZStrType() + filtering_tag_read.value = AAZStrType() + + _schema.action = cls._schema_filtering_tag_read.action + _schema.name = cls._schema_filtering_tag_read.name + _schema.value = cls._schema_filtering_tag_read.value + + +__all__ = ["Show"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/_update.py b/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/_update.py new file mode 100644 index 00000000000..625c91c81ff --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/tag_rule/_update.py @@ -0,0 +1,551 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog tag-rule update", +) +class Update(AAZCommand): + """Updates the tag rules for a specific Datadog monitor resource, allowing you to modify the rules that control which Azure resources are monitored. + + :example: TagRule_update + az datadog tag-rule update --resource-group myResourceGroup --monitor-name myMonitor --rule-set-name default --log-rules "{send-aad-logs:False,send-subscription-logs:True,send-resource-logs:True,filtering-tags:[{name:Environment,value:Prod,action:Include},{name:Environment,value:Dev,action:Exclude}]}" --metric-rules "{filtering-tags:[]}" + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/resourcegroups/{}/providers/microsoft.datadog/monitors/{}/tagrules/{}", "2021-03-01"], + ] + } + + AZ_SUPPORT_GENERIC_UPDATE = True + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + _args_schema = cls._args_schema + _args_schema.monitor_name = AAZStrArg( + options=["-n", "--name", "--monitor-name"], + help="Monitor resource name", + required=True, + id_part="name", + ) + _args_schema.resource_group = AAZResourceGroupNameArg( + required=True, + ) + _args_schema.rule_set_name = AAZStrArg( + options=["--rule-set-name"], + help="Rule set name", + required=True, + id_part="child_name_1", + ) + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.log_rules = AAZObjectArg( + options=["--log-rules"], + arg_group="Properties", + help="Set of rules for sending logs for the Monitor resource.", + nullable=True, + ) + _args_schema.metric_rules = AAZObjectArg( + options=["--metric-rules"], + arg_group="Properties", + help="Set of rules for sending metrics for the Monitor resource.", + nullable=True, + ) + + log_rules = cls._args_schema.log_rules + log_rules.filtering_tags = AAZListArg( + options=["filtering-tags"], + help="List of filtering tags to be used for capturing logs. This only takes effect if SendResourceLogs flag is enabled. If empty, all resources will be captured. If only Exclude action is specified, the rules will apply to the list of all available resources. If Include actions are specified, the rules will only include resources with the associated tags.", + nullable=True, + ) + log_rules.send_aad_logs = AAZBoolArg( + options=["send-aad-logs"], + help="Flag specifying if AAD logs should be sent for the Monitor resource.", + nullable=True, + ) + log_rules.send_resource_logs = AAZBoolArg( + options=["send-resource-logs"], + help="Flag specifying if Azure resource logs should be sent for the Monitor resource.", + nullable=True, + ) + log_rules.send_subscription_logs = AAZBoolArg( + options=["send-subscription-logs"], + help="Flag specifying if Azure subscription logs should be sent for the Monitor resource.", + nullable=True, + ) + + filtering_tags = cls._args_schema.log_rules.filtering_tags + filtering_tags.Element = AAZObjectArg( + nullable=True, + ) + cls._build_args_filtering_tag_update(filtering_tags.Element) + + metric_rules = cls._args_schema.metric_rules + metric_rules.filtering_tags = AAZListArg( + options=["filtering-tags"], + help="List of filtering tags to be used for capturing metrics. If empty, all resources will be captured. If only Exclude action is specified, the rules will apply to the list of all available resources. If Include actions are specified, the rules will only include resources with the associated tags.", + nullable=True, + ) + + filtering_tags = cls._args_schema.metric_rules.filtering_tags + filtering_tags.Element = AAZObjectArg( + nullable=True, + ) + cls._build_args_filtering_tag_update(filtering_tags.Element) + return cls._args_schema + + _args_filtering_tag_update = None + + @classmethod + def _build_args_filtering_tag_update(cls, _schema): + if cls._args_filtering_tag_update is not None: + _schema.action = cls._args_filtering_tag_update.action + _schema.name = cls._args_filtering_tag_update.name + _schema.value = cls._args_filtering_tag_update.value + return + + cls._args_filtering_tag_update = AAZObjectArg( + nullable=True, + ) + + filtering_tag_update = cls._args_filtering_tag_update + filtering_tag_update.action = AAZStrArg( + options=["action"], + help="Valid actions for a filtering tag. Exclusion takes priority over inclusion.", + nullable=True, + enum={"Exclude": "Exclude", "Include": "Include"}, + ) + filtering_tag_update.name = AAZStrArg( + options=["name"], + help="The name (also known as the key) of the tag.", + nullable=True, + ) + filtering_tag_update.value = AAZStrArg( + options=["value"], + help="The value of the tag.", + nullable=True, + ) + + _schema.action = cls._args_filtering_tag_update.action + _schema.name = cls._args_filtering_tag_update.name + _schema.value = cls._args_filtering_tag_update.value + + def _execute_operations(self): + self.pre_operations() + self.TagRulesGet(ctx=self.ctx)() + self.pre_instance_update(self.ctx.vars.instance) + self.InstanceUpdateByJson(ctx=self.ctx)() + self.InstanceUpdateByGeneric(ctx=self.ctx)() + self.post_instance_update(self.ctx.vars.instance) + self.TagRulesCreateOrUpdate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + @register_callback + def pre_instance_update(self, instance): + pass + + @register_callback + def post_instance_update(self, instance): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class TagRulesGet(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/tagRules/{ruleSetName}", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "ruleSetName", self.ctx.args.rule_set_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + _UpdateHelper._build_schema_monitoring_tag_rules_read(cls._schema_on_200) + + return cls._schema_on_200 + + class TagRulesCreateOrUpdate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/tagRules/{ruleSetName}", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "monitorName", self.ctx.args.monitor_name, + required=True, + ), + **self.serialize_url_param( + "resourceGroupName", self.ctx.args.resource_group, + required=True, + ), + **self.serialize_url_param( + "ruleSetName", self.ctx.args.rule_set_name, + required=True, + ), + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + value=self.ctx.vars.instance, + ) + + return self.serialize_content(_content_value) + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + _UpdateHelper._build_schema_monitoring_tag_rules_read(cls._schema_on_200) + + return cls._schema_on_200 + + class InstanceUpdateByJson(AAZJsonInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance(self.ctx.vars.instance) + + def _update_instance(self, instance): + _instance_value, _builder = self.new_content_builder( + self.ctx.args, + value=instance, + typ=AAZObjectType + ) + _builder.set_prop("properties", AAZObjectType) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("logRules", AAZObjectType, ".log_rules") + properties.set_prop("metricRules", AAZObjectType, ".metric_rules") + + log_rules = _builder.get(".properties.logRules") + if log_rules is not None: + log_rules.set_prop("filteringTags", AAZListType, ".filtering_tags") + log_rules.set_prop("sendAadLogs", AAZBoolType, ".send_aad_logs") + log_rules.set_prop("sendResourceLogs", AAZBoolType, ".send_resource_logs") + log_rules.set_prop("sendSubscriptionLogs", AAZBoolType, ".send_subscription_logs") + + filtering_tags = _builder.get(".properties.logRules.filteringTags") + if filtering_tags is not None: + _UpdateHelper._build_schema_filtering_tag_update(filtering_tags.set_elements(AAZObjectType, ".")) + + metric_rules = _builder.get(".properties.metricRules") + if metric_rules is not None: + metric_rules.set_prop("filteringTags", AAZListType, ".filtering_tags") + + filtering_tags = _builder.get(".properties.metricRules.filteringTags") + if filtering_tags is not None: + _UpdateHelper._build_schema_filtering_tag_update(filtering_tags.set_elements(AAZObjectType, ".")) + + return _instance_value + + class InstanceUpdateByGeneric(AAZGenericInstanceUpdateOperation): + + def __call__(self, *args, **kwargs): + self._update_instance_by_generic( + self.ctx.vars.instance, + self.ctx.generic_update_args + ) + + +class _UpdateHelper: + """Helper class for Update""" + + @classmethod + def _build_schema_filtering_tag_update(cls, _builder): + if _builder is None: + return + _builder.set_prop("action", AAZStrType, ".action") + _builder.set_prop("name", AAZStrType, ".name") + _builder.set_prop("value", AAZStrType, ".value") + + _schema_filtering_tag_read = None + + @classmethod + def _build_schema_filtering_tag_read(cls, _schema): + if cls._schema_filtering_tag_read is not None: + _schema.action = cls._schema_filtering_tag_read.action + _schema.name = cls._schema_filtering_tag_read.name + _schema.value = cls._schema_filtering_tag_read.value + return + + cls._schema_filtering_tag_read = _schema_filtering_tag_read = AAZObjectType() + + filtering_tag_read = _schema_filtering_tag_read + filtering_tag_read.action = AAZStrType() + filtering_tag_read.name = AAZStrType() + filtering_tag_read.value = AAZStrType() + + _schema.action = cls._schema_filtering_tag_read.action + _schema.name = cls._schema_filtering_tag_read.name + _schema.value = cls._schema_filtering_tag_read.value + + _schema_monitoring_tag_rules_read = None + + @classmethod + def _build_schema_monitoring_tag_rules_read(cls, _schema): + if cls._schema_monitoring_tag_rules_read is not None: + _schema.id = cls._schema_monitoring_tag_rules_read.id + _schema.name = cls._schema_monitoring_tag_rules_read.name + _schema.properties = cls._schema_monitoring_tag_rules_read.properties + _schema.system_data = cls._schema_monitoring_tag_rules_read.system_data + _schema.type = cls._schema_monitoring_tag_rules_read.type + return + + cls._schema_monitoring_tag_rules_read = _schema_monitoring_tag_rules_read = AAZObjectType() + + monitoring_tag_rules_read = _schema_monitoring_tag_rules_read + monitoring_tag_rules_read.id = AAZStrType( + flags={"read_only": True}, + ) + monitoring_tag_rules_read.name = AAZStrType( + flags={"read_only": True}, + ) + monitoring_tag_rules_read.properties = AAZObjectType() + monitoring_tag_rules_read.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + monitoring_tag_rules_read.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = _schema_monitoring_tag_rules_read.properties + properties.log_rules = AAZObjectType( + serialized_name="logRules", + ) + properties.metric_rules = AAZObjectType( + serialized_name="metricRules", + ) + properties.provisioning_state = AAZStrType( + serialized_name="provisioningState", + flags={"read_only": True}, + ) + + log_rules = _schema_monitoring_tag_rules_read.properties.log_rules + log_rules.filtering_tags = AAZListType( + serialized_name="filteringTags", + ) + log_rules.send_aad_logs = AAZBoolType( + serialized_name="sendAadLogs", + ) + log_rules.send_resource_logs = AAZBoolType( + serialized_name="sendResourceLogs", + ) + log_rules.send_subscription_logs = AAZBoolType( + serialized_name="sendSubscriptionLogs", + ) + + filtering_tags = _schema_monitoring_tag_rules_read.properties.log_rules.filtering_tags + filtering_tags.Element = AAZObjectType() + cls._build_schema_filtering_tag_read(filtering_tags.Element) + + metric_rules = _schema_monitoring_tag_rules_read.properties.metric_rules + metric_rules.filtering_tags = AAZListType( + serialized_name="filteringTags", + ) + + filtering_tags = _schema_monitoring_tag_rules_read.properties.metric_rules.filtering_tags + filtering_tags.Element = AAZObjectType() + cls._build_schema_filtering_tag_read(filtering_tags.Element) + + system_data = _schema_monitoring_tag_rules_read.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + _schema.id = cls._schema_monitoring_tag_rules_read.id + _schema.name = cls._schema_monitoring_tag_rules_read.name + _schema.properties = cls._schema_monitoring_tag_rules_read.properties + _schema.system_data = cls._schema_monitoring_tag_rules_read.system_data + _schema.type = cls._schema_monitoring_tag_rules_read.type + + +__all__ = ["Update"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/terms/__cmd_group.py b/src/datadog/azext_datadog/aaz/latest/datadog/terms/__cmd_group.py new file mode 100644 index 00000000000..d7bcd17be0f --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/terms/__cmd_group.py @@ -0,0 +1,24 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command_group( + "datadog terms", + is_experimental=True, +) +class __CMDGroup(AAZCommandGroup): + """Provides a set of commands to manage marketplace agreements for Datadog services, enabling you to handle subscription and billing agreements through Azure Marketplace. + """ + pass + + +__all__ = ["__CMDGroup"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/terms/__init__.py b/src/datadog/azext_datadog/aaz/latest/datadog/terms/__init__.py new file mode 100644 index 00000000000..354c26eabeb --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/terms/__init__.py @@ -0,0 +1,13 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from .__cmd_group import * +from ._create import * +from ._list import * diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/terms/_create.py b/src/datadog/azext_datadog/aaz/latest/datadog/terms/_create.py new file mode 100644 index 00000000000..ad9cc8fbff0 --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/terms/_create.py @@ -0,0 +1,265 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog terms create", + is_experimental=True, +) +class Create(AAZCommand): + """Creates a new marketplace agreement for Datadog services in your Azure subscription, enabling you to subscribe to Datadog services through Azure Marketplace. + + :example: MarketplaceAgreements_CreateOrUpdate + az datadog terms create --accepted True + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/providers/microsoft.datadog/agreements/default", "2021-03-01"], + ] + } + + def _handler(self, command_args): + super()._handler(command_args) + self._execute_operations() + return self._output() + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + + # define Arg Group "Properties" + + _args_schema = cls._args_schema + _args_schema.accepted = AAZBoolArg( + options=["--accepted"], + arg_group="Properties", + help="If any version of the terms have been accepted, otherwise false.", + ) + _args_schema.license_text_link = AAZStrArg( + options=["--license-text-link"], + arg_group="Properties", + help="Link to HTML with Microsoft and Publisher terms.", + ) + _args_schema.plan = AAZStrArg( + options=["--plan"], + arg_group="Properties", + help="Plan identifier string.", + ) + _args_schema.privacy_policy_link = AAZStrArg( + options=["--privacy-policy-link"], + arg_group="Properties", + help="Link to the privacy policy of the publisher.", + ) + _args_schema.product = AAZStrArg( + options=["--product"], + arg_group="Properties", + help="Product identifier string.", + ) + _args_schema.publisher = AAZStrArg( + options=["--publisher"], + arg_group="Properties", + help="Publisher identifier string.", + ) + _args_schema.retrieve_datetime = AAZDateTimeArg( + options=["--retrieve-datetime"], + arg_group="Properties", + help="Date and time in UTC of when the terms were accepted. This is empty if Accepted is false.", + ) + _args_schema.signature = AAZStrArg( + options=["--signature"], + arg_group="Properties", + help="Terms signature.", + ) + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.MarketplaceAgreementsCreateOrUpdate(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True) + return result + + class MarketplaceAgreementsCreateOrUpdate(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/providers/Microsoft.Datadog/agreements/default", + **self.url_parameters + ) + + @property + def method(self): + return "PUT" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Content-Type", "application/json", + ), + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + @property + def content(self): + _content_value, _builder = self.new_content_builder( + self.ctx.args, + typ=AAZObjectType, + typ_kwargs={"flags": {"client_flatten": True}} + ) + _builder.set_prop("properties", AAZObjectType) + + properties = _builder.get(".properties") + if properties is not None: + properties.set_prop("accepted", AAZBoolType, ".accepted") + properties.set_prop("licenseTextLink", AAZStrType, ".license_text_link") + properties.set_prop("plan", AAZStrType, ".plan") + properties.set_prop("privacyPolicyLink", AAZStrType, ".privacy_policy_link") + properties.set_prop("product", AAZStrType, ".product") + properties.set_prop("publisher", AAZStrType, ".publisher") + properties.set_prop("retrieveDatetime", AAZStrType, ".retrieve_datetime") + properties.set_prop("signature", AAZStrType, ".signature") + + return self.serialize_content(_content_value) + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.id = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.name = AAZStrType( + flags={"read_only": True}, + ) + _schema_on_200.properties = AAZObjectType() + _schema_on_200.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _schema_on_200.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.properties + properties.accepted = AAZBoolType() + properties.license_text_link = AAZStrType( + serialized_name="licenseTextLink", + ) + properties.plan = AAZStrType() + properties.privacy_policy_link = AAZStrType( + serialized_name="privacyPolicyLink", + ) + properties.product = AAZStrType() + properties.publisher = AAZStrType() + properties.retrieve_datetime = AAZStrType( + serialized_name="retrieveDatetime", + ) + properties.signature = AAZStrType() + + system_data = cls._schema_on_200.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + return cls._schema_on_200 + + +class _CreateHelper: + """Helper class for Create""" + + +__all__ = ["Create"] diff --git a/src/datadog/azext_datadog/aaz/latest/datadog/terms/_list.py b/src/datadog/azext_datadog/aaz/latest/datadog/terms/_list.py new file mode 100644 index 00000000000..c920c64412e --- /dev/null +++ b/src/datadog/azext_datadog/aaz/latest/datadog/terms/_list.py @@ -0,0 +1,207 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: skip-file +# flake8: noqa + +from azure.cli.core.aaz import * + + +@register_command( + "datadog terms list", + is_experimental=True, +) +class List(AAZCommand): + """Lists all marketplace agreements for Datadog services in your Azure subscription, helping you manage and audit your subscription and billing agreements. + + :example: MarketplaceAgreements_List + az datadog terms list + """ + + _aaz_info = { + "version": "2021-03-01", + "resources": [ + ["mgmt-plane", "/subscriptions/{}/providers/microsoft.datadog/agreements", "2021-03-01"], + ] + } + + AZ_SUPPORT_PAGINATION = True + + def _handler(self, command_args): + super()._handler(command_args) + return self.build_paging(self._execute_operations, self._output) + + _args_schema = None + + @classmethod + def _build_arguments_schema(cls, *args, **kwargs): + if cls._args_schema is not None: + return cls._args_schema + cls._args_schema = super()._build_arguments_schema(*args, **kwargs) + + # define Arg Group "" + return cls._args_schema + + def _execute_operations(self): + self.pre_operations() + self.MarketplaceAgreementsList(ctx=self.ctx)() + self.post_operations() + + @register_callback + def pre_operations(self): + pass + + @register_callback + def post_operations(self): + pass + + def _output(self, *args, **kwargs): + result = self.deserialize_output(self.ctx.vars.instance.value, client_flatten=True) + next_link = self.deserialize_output(self.ctx.vars.instance.next_link) + return result, next_link + + class MarketplaceAgreementsList(AAZHttpOperation): + CLIENT_TYPE = "MgmtClient" + + def __call__(self, *args, **kwargs): + request = self.make_request() + session = self.client.send_request(request=request, stream=False, **kwargs) + if session.http_response.status_code in [200]: + return self.on_200(session) + + return self.on_error(session.http_response) + + @property + def url(self): + return self.client.format_url( + "/subscriptions/{subscriptionId}/providers/Microsoft.Datadog/agreements", + **self.url_parameters + ) + + @property + def method(self): + return "GET" + + @property + def error_format(self): + return "MgmtErrorFormat" + + @property + def url_parameters(self): + parameters = { + **self.serialize_url_param( + "subscriptionId", self.ctx.subscription_id, + required=True, + ), + } + return parameters + + @property + def query_parameters(self): + parameters = { + **self.serialize_query_param( + "api-version", "2021-03-01", + required=True, + ), + } + return parameters + + @property + def header_parameters(self): + parameters = { + **self.serialize_header_param( + "Accept", "application/json", + ), + } + return parameters + + def on_200(self, session): + data = self.deserialize_http_content(session) + self.ctx.set_var( + "instance", + data, + schema_builder=self._build_schema_on_200 + ) + + _schema_on_200 = None + + @classmethod + def _build_schema_on_200(cls): + if cls._schema_on_200 is not None: + return cls._schema_on_200 + + cls._schema_on_200 = AAZObjectType() + + _schema_on_200 = cls._schema_on_200 + _schema_on_200.next_link = AAZStrType( + serialized_name="nextLink", + ) + _schema_on_200.value = AAZListType() + + value = cls._schema_on_200.value + value.Element = AAZObjectType() + + _element = cls._schema_on_200.value.Element + _element.id = AAZStrType( + flags={"read_only": True}, + ) + _element.name = AAZStrType( + flags={"read_only": True}, + ) + _element.properties = AAZObjectType() + _element.system_data = AAZObjectType( + serialized_name="systemData", + flags={"read_only": True}, + ) + _element.type = AAZStrType( + flags={"read_only": True}, + ) + + properties = cls._schema_on_200.value.Element.properties + properties.accepted = AAZBoolType() + properties.license_text_link = AAZStrType( + serialized_name="licenseTextLink", + ) + properties.plan = AAZStrType() + properties.privacy_policy_link = AAZStrType( + serialized_name="privacyPolicyLink", + ) + properties.product = AAZStrType() + properties.publisher = AAZStrType() + properties.retrieve_datetime = AAZStrType( + serialized_name="retrieveDatetime", + ) + properties.signature = AAZStrType() + + system_data = cls._schema_on_200.value.Element.system_data + system_data.created_at = AAZStrType( + serialized_name="createdAt", + ) + system_data.created_by = AAZStrType( + serialized_name="createdBy", + ) + system_data.created_by_type = AAZStrType( + serialized_name="createdByType", + ) + system_data.last_modified_at = AAZStrType( + serialized_name="lastModifiedAt", + ) + system_data.last_modified_by = AAZStrType( + serialized_name="lastModifiedBy", + ) + system_data.last_modified_by_type = AAZStrType( + serialized_name="lastModifiedByType", + ) + + return cls._schema_on_200 + + +class _ListHelper: + """Helper class for List""" + + +__all__ = ["List"] diff --git a/src/datadog/azext_datadog/action.py b/src/datadog/azext_datadog/action.py deleted file mode 100644 index d95d53bf711..00000000000 --- a/src/datadog/azext_datadog/action.py +++ /dev/null @@ -1,17 +0,0 @@ -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- -# pylint: disable=wildcard-import -# pylint: disable=unused-wildcard-import - -from .generated.action import * # noqa: F403 -try: - from .manual.action import * # noqa: F403 -except ImportError: - pass diff --git a/src/datadog/azext_datadog/azext_metadata.json b/src/datadog/azext_datadog/azext_metadata.json index 14d2c1ae419..b0f3351245f 100644 --- a/src/datadog/azext_datadog/azext_metadata.json +++ b/src/datadog/azext_datadog/azext_metadata.json @@ -1,4 +1,4 @@ { - "azext.isExperimental": true, - "azext.minCliCoreVersion": "2.17.0" + "azext.isPreview": false, + "azext.minCliCoreVersion": "2.70.0" } \ No newline at end of file diff --git a/src/datadog/azext_datadog/commands.py b/src/datadog/azext_datadog/commands.py new file mode 100644 index 00000000000..b0d842e4993 --- /dev/null +++ b/src/datadog/azext_datadog/commands.py @@ -0,0 +1,15 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +# pylint: disable=too-many-lines +# pylint: disable=too-many-statements + +# from azure.cli.core.commands import CliCommandType + + +def load_command_table(self, _): # pylint: disable=unused-argument + pass diff --git a/src/datadog/azext_datadog/custom.py b/src/datadog/azext_datadog/custom.py index dbe9d5f9742..86df1e48ef5 100644 --- a/src/datadog/azext_datadog/custom.py +++ b/src/datadog/azext_datadog/custom.py @@ -1,17 +1,14 @@ -# -------------------------------------------------------------------------- +# -------------------------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. +# Licensed under the MIT License. See License.txt in the project root for license information. # -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- -# pylint: disable=wildcard-import -# pylint: disable=unused-wildcard-import +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- -from .generated.custom import * # noqa: F403 -try: - from .manual.custom import * # noqa: F403 -except ImportError: - pass +# pylint: disable=too-many-lines +# pylint: disable=too-many-statements + +from knack.log import get_logger + + +logger = get_logger(__name__) diff --git a/src/datadog/azext_datadog/generated/__init__.py b/src/datadog/azext_datadog/generated/__init__.py deleted file mode 100644 index c9cfdc73e77..00000000000 --- a/src/datadog/azext_datadog/generated/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/datadog/azext_datadog/generated/_client_factory.py b/src/datadog/azext_datadog/generated/_client_factory.py deleted file mode 100644 index 920835d7499..00000000000 --- a/src/datadog/azext_datadog/generated/_client_factory.py +++ /dev/null @@ -1,32 +0,0 @@ -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - - -def cf_datadog_cl(cli_ctx, *_): - from azure.cli.core.commands.client_factory import get_mgmt_service_client - from azext_datadog.vendored_sdks.datadog import MicrosoftDatadogClient - return get_mgmt_service_client(cli_ctx, - MicrosoftDatadogClient) - - -def cf_marketplace_agreement(cli_ctx, *_): - return cf_datadog_cl(cli_ctx).marketplace_agreements - - -def cf_monitor(cli_ctx, *_): - return cf_datadog_cl(cli_ctx).monitors - - -def cf_tag_rule(cli_ctx, *_): - return cf_datadog_cl(cli_ctx).tag_rules - - -def cf_single_sign_on_configuration(cli_ctx, *_): - return cf_datadog_cl(cli_ctx).single_sign_on_configurations diff --git a/src/datadog/azext_datadog/generated/_help.py b/src/datadog/azext_datadog/generated/_help.py deleted file mode 100644 index c9c74a07ed0..00000000000 --- a/src/datadog/azext_datadog/generated/_help.py +++ /dev/null @@ -1,396 +0,0 @@ -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- -# pylint: disable=too-many-lines - -from knack.help_files import helps - - -helps['datadog terms'] = """ - type: group - short-summary: Manage marketplace agreements with datadog -""" - -helps['datadog terms list'] = """ - type: command - short-summary: "List datadog marketplace agreements" - examples: - - name: List marketplace agreements - text: |- - az datadog terms list -""" - -helps['datadog terms create'] = """ - type: command - short-summary: "Create Datadog marketplace agreement in the subscription." - parameters: - - name: --properties - short-summary: "Represents the properties of the resource." - long-summary: | - Usage: --properties publisher=XX product=XX plan=XX license-text-link=XX privacy-policy-link=XX \ -retrieve-datetime=XX signature=XX accepted=XX - - publisher: Publisher identifier string. - product: Product identifier string. - plan: Plan identifier string. - license-text-link: Link to HTML with Microsoft and Publisher terms. - privacy-policy-link: Link to the privacy policy of the publisher. - retrieve-datetime: Date and time in UTC of when the terms were accepted. This is empty if Accepted is \ -false. - signature: Terms signature. - accepted: If any version of the terms have been accepted, otherwise false. - examples: - - name: MarketplaceAgreements_CreateOrUpdate - text: |- - az datadog terms create --properties accepted=true -""" - -helps['datadog terms update'] = """ - type: command - short-summary: "Update Datadog marketplace agreement in the subscription." - parameters: - - name: --properties - short-summary: "Represents the properties of the resource." - long-summary: | - Usage: --properties publisher=XX product=XX plan=XX license-text-link=XX privacy-policy-link=XX \ -retrieve-datetime=XX signature=XX accepted=XX - - publisher: Publisher identifier string. - product: Product identifier string. - plan: Plan identifier string. - license-text-link: Link to HTML with Microsoft and Publisher terms. - privacy-policy-link: Link to the privacy policy of the publisher. - retrieve-datetime: Date and time in UTC of when the terms were accepted. This is empty if Accepted is \ -false. - signature: Terms signature. - accepted: If any version of the terms have been accepted, otherwise false. -""" - -helps['datadog monitor'] = """ - type: group - short-summary: Manage monitor with datadog -""" - -helps['datadog monitor list'] = """ - type: command - short-summary: "List all monitors under the specified resource group. And List all monitors under the specified \ -subscription." - examples: - - name: Monitors_ListByResourceGroup - text: |- - az datadog monitor list --resource-group "myResourceGroup" - - name: Monitors_List - text: |- - az datadog monitor list -""" - -helps['datadog monitor show'] = """ - type: command - short-summary: "Get the properties of a specific monitor resource." - examples: - - name: Monitors_Get - text: |- - az datadog monitor show --name "myMonitor" --resource-group "myResourceGroup" -""" - -helps['datadog monitor create'] = """ - type: command - short-summary: "Create a monitor resource." - parameters: - - name: --datadog-organization-properties - short-summary: "Datadog organization properties" - long-summary: | - Usage: --datadog-organization-properties linking-auth-code=XX linking-client-id=XX redirect-uri=XX \ -api-key=XX application-key=XX enterprise-app-id=XX - - linking-auth-code: The auth code used to linking to an existing datadog organization. - linking-client-id: The client_id from an existing in exchange for an auth token to link organization. - redirect-uri: The redirect uri for linking. - api-key: Api key associated to the Datadog organization. - application-key: Application key associated to the Datadog organization. - enterprise-app-id: The Id of the Enterprise App used for Single sign on. - - name: --user-info - short-summary: "User info" - long-summary: | - Usage: --user-info name=XX email-address=XX phone-number=XX - - name: Name of the user - email-address: Email of the user used by Datadog for contacting them if needed - phone-number: Phone number of the user used by Datadog for contacting them if needed - examples: - - name: Monitors_Create - text: |- - az datadog monitor create --name "myMonitor" --resource-group "myResourceGroup" --location "West US 2" \ ---tags Environment="Dev" --user-info name="Alice" email-address="alice@microsoft.com" phone-number="123-456-7890" \ ---type "SystemAssigned" --sku-name "payg_v2_Monthly" - - name: Monitors creation with linking to Datadogo organization. - text: |- - az datadog monitor create --name "myMonitor" --resource-group "myResourceGroup" --location "West US 2" \ ---datadog-organization-properties api-key=XX application-key=XX --tags Environment="Dev" --user-info name="Alice" \ -email-address="alice@microsoft.com" phone-number="123-456-7890" --type "SystemAssigned" --sku-name "Linked" -""" - -helps['datadog monitor update'] = """ - type: command - short-summary: "Update a monitor resource." - examples: - - name: Monitors_Update - text: |- - az datadog monitor update --name "myMonitor" --tags Environment="Dev" --monitoring-status "Disabled" \ ---resource-group "myResourceGroup" -""" - -helps['datadog monitor delete'] = """ - type: command - short-summary: "Delete a monitor resource." - examples: - - name: Monitors_Delete - text: |- - az datadog monitor delete --name "myMonitor" --resource-group "myResourceGroup" -""" - -helps['datadog monitor get-default-key'] = """ - type: command - short-summary: "Get the default api key." - examples: - - name: Monitors_GetDefaultKey - text: |- - az datadog monitor get-default-key --name "myMonitor" --resource-group "myResourceGroup" -""" - -helps['datadog monitor list-api-key'] = """ - type: command - short-summary: "List the api keys for a given monitor resource." - examples: - - name: Monitors_ListApiKeys - text: |- - az datadog monitor list-api-key --name "myMonitor" --resource-group "myResourceGroup" -""" - -helps['datadog monitor list-host'] = """ - type: command - short-summary: "List the hosts for a given monitor resource." - examples: - - name: Monitors_ListHosts - text: |- - az datadog monitor list-host --name "myMonitor" --resource-group "myResourceGroup" -""" - -helps['datadog monitor list-linked-resource'] = """ - type: command - short-summary: "List all Azure resources associated to the same Datadog organization as the target resource." - examples: - - name: Monitors_ListLinkedResources - text: |- - az datadog monitor list-linked-resource --name "myMonitor" --resource-group "myResourceGroup" -""" - -helps['datadog monitor list-monitored-resource'] = """ - type: command - short-summary: "List the resources currently being monitored by the Datadog monitor resource." - examples: - - name: Monitors_ListMonitoredResources - text: |- - az datadog monitor list-monitored-resource --name "myMonitor" --resource-group "myResourceGroup" -""" - -helps['datadog monitor refresh-set-password-link'] = """ - type: command - short-summary: "Refresh the set password link and return a latest one." - examples: - - name: Monitors_RefreshSetPasswordLink - text: |- - az datadog monitor refresh-set-password-link --name "myMonitor" --resource-group "myResourceGroup" -""" - -helps['datadog monitor set-default-key'] = """ - type: command - short-summary: "Set the default api key." - examples: - - name: Monitors_SetDefaultKey - text: |- - az datadog monitor set-default-key --monitor-name "myMonitor" --key "1111111111111111aaaaaaaaaaaaaaaa" \ ---resource-group "myResourceGroup" -""" - -helps['datadog monitor wait'] = """ - type: command - short-summary: Place the CLI in a waiting state until a condition of the datadog monitor is met. - examples: - - name: Pause executing next line of CLI script until the datadog monitor is successfully created. - text: |- - az datadog monitor wait --name "myMonitor" --resource-group "myResourceGroup" --created - - name: Pause executing next line of CLI script until the datadog monitor is successfully updated. - text: |- - az datadog monitor wait --name "myMonitor" --resource-group "myResourceGroup" --updated - - name: Pause executing next line of CLI script until the datadog monitor is successfully deleted. - text: |- - az datadog monitor wait --name "myMonitor" --resource-group "myResourceGroup" --deleted -""" - -helps['datadog tag-rule'] = """ - type: group - short-summary: Manage tag rule with datadog -""" - -helps['datadog tag-rule list'] = """ - type: command - short-summary: "List the tag rules for a given monitor resource." - examples: - - name: TagRules_List - text: |- - az datadog tag-rule list --monitor-name "myMonitor" --resource-group "myResourceGroup" -""" - -helps['datadog tag-rule show'] = """ - type: command - short-summary: "Get a tag rule set for a given monitor resource." - examples: - - name: TagRules_Get - text: |- - az datadog tag-rule show --monitor-name "myMonitor" --resource-group "myResourceGroup" --rule-set-name \ -"default" -""" - -helps['datadog tag-rule create'] = """ - type: command - short-summary: "Create a tag rule set for a given monitor resource." - parameters: - - name: --filtering-tags - short-summary: "List of filtering tags to be used for capturing metrics. If empty, all resources will be \ -captured. If only Exclude action is specified, the rules will apply to the list of all available resources. If Include \ -actions are specified, the rules will only include resources with the associated tags." - long-summary: | - Usage: --filtering-tags name=XX value=XX action=XX - - name: The name (also known as the key) of the tag. - value: The value of the tag. - action: Valid actions for a filtering tag. Exclusion takes priority over inclusion. - - Multiple actions can be specified by using more than one --filtering-tags argument. - - name: --log-rules-filtering-tags - short-summary: "List of filtering tags to be used for capturing logs. This only takes effect if \ -SendResourceLogs flag is enabled. If empty, all resources will be captured. If only Exclude action is specified, the \ -rules will apply to the list of all available resources. If Include actions are specified, the rules will only include \ -resources with the associated tags." - long-summary: | - Usage: --log-rules-filtering-tags name=XX value=XX action=XX - - name: The name (also known as the key) of the tag. - value: The value of the tag. - action: Valid actions for a filtering tag. Exclusion takes priority over inclusion. - - Multiple actions can be specified by using more than one --log-rules-filtering-tags argument. - examples: - - name: TagRules_CreateOrUpdate - text: |- - az datadog tag-rule create --monitor-name "myMonitor" --log-rules-filtering-tags name="Environment" \ -action="Include" value="Prod" --log-rules-filtering-tags name="Environment" action="Exclude" value="Dev" \ ---send-aad-logs false --send-resource-logs true --send-subscription-logs true --resource-group "myResourceGroup" \ ---rule-set-name "default" -""" - -helps['datadog tag-rule update'] = """ - type: command - short-summary: "Update a tag rule set for a given monitor resource." - parameters: - - name: --filtering-tags - short-summary: "List of filtering tags to be used for capturing metrics. If empty, all resources will be \ -captured. If only Exclude action is specified, the rules will apply to the list of all available resources. If Include \ -actions are specified, the rules will only include resources with the associated tags." - long-summary: | - Usage: --filtering-tags name=XX value=XX action=XX - - name: The name (also known as the key) of the tag. - value: The value of the tag. - action: Valid actions for a filtering tag. Exclusion takes priority over inclusion. - - Multiple actions can be specified by using more than one --filtering-tags argument. - - name: --log-rules-filtering-tags - short-summary: "List of filtering tags to be used for capturing logs. This only takes effect if \ -SendResourceLogs flag is enabled. If empty, all resources will be captured. If only Exclude action is specified, the \ -rules will apply to the list of all available resources. If Include actions are specified, the rules will only include \ -resources with the associated tags." - long-summary: | - Usage: --log-rules-filtering-tags name=XX value=XX action=XX - - name: The name (also known as the key) of the tag. - value: The value of the tag. - action: Valid actions for a filtering tag. Exclusion takes priority over inclusion. - - Multiple actions can be specified by using more than one --log-rules-filtering-tags argument. -""" - -helps['datadog sso-config'] = """ - type: group - short-summary: Manage sso config with datadog -""" - -helps['datadog sso-config list'] = """ - type: command - short-summary: "List the single sign-on configurations for a given monitor resource." - examples: - - name: SingleSignOnConfigurations_List - text: |- - az datadog sso-config list --monitor-name "myMonitor" --resource-group "myResourceGroup" -""" - -helps['datadog sso-config show'] = """ - type: command - short-summary: "Gets the datadog single sign-on resource for the given Monitor." - examples: - - name: SingleSignOnConfigurations_Get - text: |- - az datadog sso-config show --configuration-name "default" --monitor-name "myMonitor" --resource-group \ -"myResourceGroup" -""" - -helps['datadog sso-config create'] = """ - type: command - short-summary: "Configures single-sign-on for this resource." - parameters: - - name: --properties - long-summary: | - Usage: --properties single-sign-on-state=XX enterprise-app-id=XX - - single-sign-on-state: Various states of the SSO resource - enterprise-app-id: The Id of the Enterprise App used for Single sign-on. - examples: - - name: SingleSignOnConfigurations_CreateOrUpdate - text: |- - az datadog sso-config create --configuration-name "default" --monitor-name "myMonitor" --properties \ -enterprise-app-id="00000000-0000-0000-0000-000000000000" single-sign-on-state="Enable" --resource-group \ -"myResourceGroup" -""" - -helps['datadog sso-config update'] = """ - type: command - short-summary: "Configures single-sign-on for this resource." - parameters: - - name: --properties - long-summary: | - Usage: --properties single-sign-on-state=XX enterprise-app-id=XX - - single-sign-on-state: Various states of the SSO resource - enterprise-app-id: The Id of the Enterprise App used for Single sign-on. -""" - -helps['datadog sso-config wait'] = """ - type: command - short-summary: Place the CLI in a waiting state until a condition of the datadog sso-config is met. - examples: - - name: Pause executing next line of CLI script until the datadog sso-config is successfully created. - text: |- - az datadog sso-config wait --configuration-name "default" --monitor-name "myMonitor" --resource-group \ -"myResourceGroup" --created - - name: Pause executing next line of CLI script until the datadog sso-config is successfully updated. - text: |- - az datadog sso-config wait --configuration-name "default" --monitor-name "myMonitor" --resource-group \ -"myResourceGroup" --updated -""" diff --git a/src/datadog/azext_datadog/generated/_params.py b/src/datadog/azext_datadog/generated/_params.py deleted file mode 100644 index 963f1cc3fb1..00000000000 --- a/src/datadog/azext_datadog/generated/_params.py +++ /dev/null @@ -1,195 +0,0 @@ -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- -# pylint: disable=too-many-lines -# pylint: disable=too-many-statements - -from azure.cli.core.commands.parameters import ( - tags_type, - get_three_state_flag, - get_enum_type, - resource_group_name_type, - get_location_type -) -from azure.cli.core.commands.validators import get_default_location_from_resource_group -from azext_datadog.action import ( - AddMarketplaceagreementsProperties, - AddDatadogOrganizationProperties, - AddUserInfo, - AddFilteringTags, - AddLogRulesFilteringTags, - AddSinglesignonconfigurationsProperties -) - - -def load_arguments(self, _): - - with self.argument_context('datadog terms create') as c: - c.argument('properties', action=AddMarketplaceagreementsProperties, nargs='+', help='Represents the properties ' - 'of the resource.') - - with self.argument_context('datadog terms update') as c: - c.argument('properties', action=AddMarketplaceagreementsProperties, nargs='+', help='Represents the properties ' - 'of the resource.') - - with self.argument_context('datadog monitor list') as c: - c.argument('resource_group_name', resource_group_name_type) - - with self.argument_context('datadog monitor show') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', options_list=['--name', '-n', '--monitor-name'], type=str, help='Monitor resource ' - 'name', id_part='name') - - with self.argument_context('datadog monitor create') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', options_list=['--name', '-n', '--monitor-name'], type=str, help='Monitor resource ' - 'name') - 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('type_', options_list=['--type'], arg_type=get_enum_type(['SystemAssigned', 'UserAssigned']), - help='Identity type', arg_group='Identity') - c.argument('datadog_organization_properties', action=AddDatadogOrganizationProperties, nargs='+', - help='Datadog organization properties') - c.argument('user_info', action=AddUserInfo, nargs='+', help='User info') - c.argument('sku_name', type=str, help='Name of the SKU.', arg_group='Sku') - - with self.argument_context('datadog monitor update') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', options_list=['--name', '-n', '--monitor-name'], type=str, help='Monitor resource ' - 'name', id_part='name') - c.argument('tags', tags_type) - c.argument('monitoring_status', type=str, help='Flag specifying if the resource monitoring is enabled or ' - 'disabled. Allowed values: "Enabled", "Disabled".') - c.argument('sku_name', type=str, help='Name of the SKU.', arg_group='Sku') - - with self.argument_context('datadog monitor delete') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', options_list=['--name', '-n', '--monitor-name'], type=str, help='Monitor resource ' - 'name', id_part='name') - - with self.argument_context('datadog monitor get-default-key') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', options_list=['--name', '-n', '--monitor-name'], type=str, help='Monitor resource ' - 'name', id_part='name') - - with self.argument_context('datadog monitor list-api-key') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', options_list=['--name', '-n', '--monitor-name'], type=str, help='Monitor resource ' - 'name') - - with self.argument_context('datadog monitor list-host') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', options_list=['--name', '-n', '--monitor-name'], type=str, help='Monitor resource ' - 'name') - - with self.argument_context('datadog monitor list-linked-resource') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', options_list=['--name', '-n', '--monitor-name'], type=str, help='Monitor resource ' - 'name') - - with self.argument_context('datadog monitor list-monitored-resource') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', options_list=['--name', '-n', '--monitor-name'], type=str, help='Monitor resource ' - 'name') - - with self.argument_context('datadog monitor refresh-set-password-link') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', options_list=['--name', '-n', '--monitor-name'], type=str, help='Monitor resource ' - 'name', id_part='name') - - with self.argument_context('datadog monitor set-default-key') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', type=str, help='Monitor resource name', id_part='name') - c.argument('created_by', type=str, help='The user that created the API key.') - c.argument('name', type=str, help='The name of the API key.') - c.argument('key', type=str, help='The value of the API key.') - c.argument('created', type=str, help='The time of creation of the API key.') - - with self.argument_context('datadog monitor wait') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', options_list=['--name', '-n', '--monitor-name'], type=str, help='Monitor resource ' - 'name', id_part='name') - - with self.argument_context('datadog tag-rule list') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', type=str, help='Monitor resource name') - - with self.argument_context('datadog tag-rule show') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', type=str, help='Monitor resource name', id_part='name') - c.argument('rule_set_name', type=str, help='Rule set name', id_part='child_name_1') - - with self.argument_context('datadog tag-rule create') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', type=str, help='Monitor resource name') - c.argument('rule_set_name', type=str, help='Rule set name') - c.argument('filtering_tags', action=AddFilteringTags, nargs='+', help='List of filtering tags to be used for ' - 'capturing metrics. If empty, all resources will be captured. If only Exclude action is specified, ' - 'the rules will apply to the list of all available resources. If Include actions are specified, the ' - 'rules will only include resources with the associated tags.', arg_group='Metric Rules') - c.argument('send_aad_logs', arg_type=get_three_state_flag(), help='Flag specifying if AAD logs should be sent ' - 'for the Monitor resource.', arg_group='Log Rules') - c.argument('send_subscription_logs', arg_type=get_three_state_flag(), help='Flag specifying if Azure ' - 'subscription logs should be sent for the Monitor resource.', arg_group='Log Rules') - c.argument('send_resource_logs', arg_type=get_three_state_flag(), help='Flag specifying if Azure resource logs ' - 'should be sent for the Monitor resource.', arg_group='Log Rules') - c.argument('log_rules_filtering_tags', action=AddLogRulesFilteringTags, nargs='+', help='List of filtering ' - 'tags to be used for capturing logs. This only takes effect if SendResourceLogs flag is enabled. If ' - 'empty, all resources will be captured. If only Exclude action is specified, the rules will apply ' - 'to the list of all available resources. If Include actions are specified, the rules will only ' - 'include resources with the associated tags.', arg_group='Log Rules') - - with self.argument_context('datadog tag-rule update') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', type=str, help='Monitor resource name', id_part='name') - c.argument('rule_set_name', type=str, help='Rule set name', id_part='child_name_1') - c.argument('filtering_tags', action=AddFilteringTags, nargs='+', help='List of filtering tags to be used for ' - 'capturing metrics. If empty, all resources will be captured. If only Exclude action is specified, ' - 'the rules will apply to the list of all available resources. If Include actions are specified, the ' - 'rules will only include resources with the associated tags.', arg_group='Metric Rules') - c.argument('send_aad_logs', arg_type=get_three_state_flag(), help='Flag specifying if AAD logs should be sent ' - 'for the Monitor resource.', arg_group='Log Rules') - c.argument('send_subscription_logs', arg_type=get_three_state_flag(), help='Flag specifying if Azure ' - 'subscription logs should be sent for the Monitor resource.', arg_group='Log Rules') - c.argument('send_resource_logs', arg_type=get_three_state_flag(), help='Flag specifying if Azure resource logs ' - 'should be sent for the Monitor resource.', arg_group='Log Rules') - c.argument('log_rules_filtering_tags', action=AddLogRulesFilteringTags, nargs='+', help='List of filtering ' - 'tags to be used for capturing logs. This only takes effect if SendResourceLogs flag is enabled. If ' - 'empty, all resources will be captured. If only Exclude action is specified, the rules will apply ' - 'to the list of all available resources. If Include actions are specified, the rules will only ' - 'include resources with the associated tags.', arg_group='Log Rules') - c.ignore('body') - - with self.argument_context('datadog sso-config list') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', type=str, help='Monitor resource name') - - with self.argument_context('datadog sso-config show') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', type=str, help='Monitor resource name', id_part='name') - c.argument('configuration_name', type=str, help='Configuration name', id_part='child_name_1') - - with self.argument_context('datadog sso-config create') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', type=str, help='Monitor resource name') - c.argument('configuration_name', type=str, help='Configuration name') - c.argument('properties', action=AddSinglesignonconfigurationsProperties, nargs='+', help='') - - with self.argument_context('datadog sso-config update') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', type=str, help='Monitor resource name', id_part='name') - c.argument('configuration_name', type=str, help='Configuration name', id_part='child_name_1') - c.argument('properties', action=AddSinglesignonconfigurationsProperties, nargs='+', help='') - c.ignore('body') - - with self.argument_context('datadog sso-config wait') as c: - c.argument('resource_group_name', resource_group_name_type) - c.argument('monitor_name', type=str, help='Monitor resource name', id_part='name') - c.argument('configuration_name', type=str, help='Configuration name', id_part='child_name_1') diff --git a/src/datadog/azext_datadog/generated/action.py b/src/datadog/azext_datadog/generated/action.py deleted file mode 100644 index b7fe7e6cd66..00000000000 --- a/src/datadog/azext_datadog/generated/action.py +++ /dev/null @@ -1,204 +0,0 @@ -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- -# pylint: disable=protected-access - -import argparse -from collections import defaultdict -from knack.util import CLIError - - -class AddMarketplaceagreementsProperties(argparse.Action): - def __call__(self, parser, namespace, values, option_string=None): - action = self.get_action(values, option_string) - namespace.properties = action - - def get_action(self, values, option_string): # pylint: disable=no-self-use - try: - properties = defaultdict(list) - for (k, v) in (x.split('=', 1) for x in values): - properties[k].append(v) - properties = dict(properties) - except ValueError: - raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string)) - d = {} - for k in properties: - kl = k.lower() - v = properties[k] - if kl == 'publisher': - d['publisher'] = v[0] - elif kl == 'product': - d['product'] = v[0] - elif kl == 'plan': - d['plan'] = v[0] - elif kl == 'license-text-link': - d['license_text_link'] = v[0] - elif kl == 'privacy-policy-link': - d['privacy_policy_link'] = v[0] - elif kl == 'retrieve-datetime': - d['retrieve_datetime'] = v[0] - elif kl == 'signature': - d['signature'] = v[0] - elif kl == 'accepted': - d['accepted'] = v[0] - else: - raise CLIError('Unsupported Key {} is provided for parameter properties. All possible keys are: ' - 'publisher, product, plan, license-text-link, privacy-policy-link, retrieve-datetime, ' - 'signature, accepted'.format(k)) - return d - - -class AddDatadogOrganizationProperties(argparse.Action): - def __call__(self, parser, namespace, values, option_string=None): - action = self.get_action(values, option_string) - namespace.datadog_organization_properties = action - - def get_action(self, values, option_string): # pylint: disable=no-self-use - try: - properties = defaultdict(list) - for (k, v) in (x.split('=', 1) for x in values): - properties[k].append(v) - properties = dict(properties) - except ValueError: - raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string)) - d = {} - for k in properties: - kl = k.lower() - v = properties[k] - if kl == 'linking-auth-code': - d['linking_auth_code'] = v[0] - elif kl == 'linking-client-id': - d['linking_client_id'] = v[0] - elif kl == 'redirect-uri': - d['redirect_uri'] = v[0] - elif kl == 'api-key': - d['api_key'] = v[0] - elif kl == 'application-key': - d['application_key'] = v[0] - elif kl == 'enterprise-app-id': - d['enterprise_app_id'] = v[0] - else: - raise CLIError('Unsupported Key {} is provided for parameter datadog_organization_properties. All ' - 'possible keys are: linking-auth-code, linking-client-id, redirect-uri, api-key, ' - 'application-key, enterprise-app-id'.format(k)) - return d - - -class AddUserInfo(argparse.Action): - def __call__(self, parser, namespace, values, option_string=None): - action = self.get_action(values, option_string) - namespace.user_info = 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 == 'name': - d['name'] = v[0] - elif kl == 'email-address': - d['email_address'] = v[0] - elif kl == 'phone-number': - d['phone_number'] = v[0] - else: - raise CLIError('Unsupported Key {} is provided for parameter user_info. All possible keys are: name, ' - 'email-address, phone-number'.format(k)) - return d - - -class AddFilteringTags(argparse._AppendAction): - def __call__(self, parser, namespace, values, option_string=None): - action = self.get_action(values, option_string) - super(AddFilteringTags, self).__call__(parser, namespace, action, option_string) - - 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 == 'name': - d['name'] = v[0] - elif kl == 'value': - d['value'] = v[0] - elif kl == 'action': - d['action'] = v[0] - else: - raise CLIError('Unsupported Key {} is provided for parameter filtering_tags. All possible keys are: ' - 'name, value, action'.format(k)) - return d - - -class AddLogRulesFilteringTags(argparse._AppendAction): - def __call__(self, parser, namespace, values, option_string=None): - action = self.get_action(values, option_string) - super(AddLogRulesFilteringTags, self).__call__(parser, namespace, action, option_string) - - 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 == 'name': - d['name'] = v[0] - elif kl == 'value': - d['value'] = v[0] - elif kl == 'action': - d['action'] = v[0] - else: - raise CLIError('Unsupported Key {} is provided for parameter log_rules_filtering_tags. All possible ' - 'keys are: name, value, action'.format(k)) - return d - - -class AddSinglesignonconfigurationsProperties(argparse.Action): - def __call__(self, parser, namespace, values, option_string=None): - action = self.get_action(values, option_string) - namespace.properties = action - - def get_action(self, values, option_string): # pylint: disable=no-self-use - try: - properties = defaultdict(list) - for (k, v) in (x.split('=', 1) for x in values): - properties[k].append(v) - properties = dict(properties) - except ValueError: - raise CLIError('usage error: {} [KEY=VALUE ...]'.format(option_string)) - d = {} - for k in properties: - kl = k.lower() - v = properties[k] - if kl == 'single-sign-on-state': - d['single_sign_on_state'] = v[0] - elif kl == 'enterprise-app-id': - d['enterprise_app_id'] = v[0] - else: - raise CLIError('Unsupported Key {} is provided for parameter properties. All possible keys are: ' - 'single-sign-on-state, enterprise-app-id'.format(k)) - return d diff --git a/src/datadog/azext_datadog/generated/commands.py b/src/datadog/azext_datadog/generated/commands.py deleted file mode 100644 index b4d1bba3616..00000000000 --- a/src/datadog/azext_datadog/generated/commands.py +++ /dev/null @@ -1,73 +0,0 @@ -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- -# pylint: disable=too-many-statements -# pylint: disable=too-many-locals - -from azure.cli.core.commands import CliCommandType - - -def load_command_table(self, _): - - from azext_datadog.generated._client_factory import cf_marketplace_agreement - datadog_marketplace_agreement = CliCommandType( - operations_tmpl='azext_datadog.vendored_sdks.datadog.operations._marketplace_agreements_operations#MarketplaceA' - 'greementsOperations.{}', - client_factory=cf_marketplace_agreement) - with self.command_group('datadog terms', datadog_marketplace_agreement, - client_factory=cf_marketplace_agreement, is_experimental=True) as g: - g.custom_command('list', 'datadog_terms_list') - g.custom_command('create', 'datadog_terms_create') - g.custom_command('update', 'datadog_terms_update') - - from azext_datadog.generated._client_factory import cf_monitor - datadog_monitor = CliCommandType( - operations_tmpl='azext_datadog.vendored_sdks.datadog.operations._monitors_operations#MonitorsOperations.{}', - client_factory=cf_monitor) - with self.command_group('datadog monitor', datadog_monitor, client_factory=cf_monitor) as g: - g.custom_command('list', 'datadog_monitor_list') - g.custom_show_command('show', 'datadog_monitor_show') - g.custom_command('create', 'datadog_monitor_create', supports_no_wait=True) - g.custom_command('update', 'datadog_monitor_update', supports_no_wait=True) - g.custom_command('delete', 'datadog_monitor_delete', supports_no_wait=True, confirmation=True) - g.custom_command('get-default-key', 'datadog_monitor_get_default_key') - g.custom_command('list-api-key', 'datadog_monitor_list_api_key') - g.custom_command('list-host', 'datadog_monitor_list_host') - g.custom_command('list-linked-resource', 'datadog_monitor_list_linked_resource') - g.custom_command('list-monitored-resource', 'datadog_monitor_list_monitored_resource') - g.custom_command('refresh-set-password-link', 'datadog_monitor_refresh_set_password_link') - g.custom_command('set-default-key', 'datadog_monitor_set_default_key') - g.custom_wait_command('wait', 'datadog_monitor_show') - - from azext_datadog.generated._client_factory import cf_tag_rule - datadog_tag_rule = CliCommandType( - operations_tmpl='azext_datadog.vendored_sdks.datadog.operations._tag_rules_operations#TagRulesOperations.{}', - client_factory=cf_tag_rule) - with self.command_group('datadog tag-rule', datadog_tag_rule, client_factory=cf_tag_rule) as g: - g.custom_command('list', 'datadog_tag_rule_list') - g.custom_show_command('show', 'datadog_tag_rule_show') - g.custom_command('create', 'datadog_tag_rule_create') - g.generic_update_command('update', setter_arg_name='body', custom_func_name='datadog_tag_rule_update') - - from azext_datadog.generated._client_factory import cf_single_sign_on_configuration - datadog_single_sign_on_configuration = CliCommandType( - operations_tmpl='azext_datadog.vendored_sdks.datadog.operations._single_sign_on_configurations_operations#Singl' - 'eSignOnConfigurationsOperations.{}', - client_factory=cf_single_sign_on_configuration) - with self.command_group('datadog sso-config', datadog_single_sign_on_configuration, - client_factory=cf_single_sign_on_configuration) as g: - g.custom_command('list', 'datadog_sso_config_list') - g.custom_show_command('show', 'datadog_sso_config_show') - g.custom_command('create', 'datadog_sso_config_create', supports_no_wait=True) - g.generic_update_command('update', setter_arg_name='body', setter_name='begin_create_or_update', - custom_func_name='datadog_sso_config_update', supports_no_wait=True) - g.custom_wait_command('wait', 'datadog_sso_config_show') - - with self.command_group('datadog'): - pass diff --git a/src/datadog/azext_datadog/generated/custom.py b/src/datadog/azext_datadog/generated/custom.py deleted file mode 100644 index 02b45eaca87..00000000000 --- a/src/datadog/azext_datadog/generated/custom.py +++ /dev/null @@ -1,296 +0,0 @@ -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- -# pylint: disable=too-many-lines -# pylint: disable=unused-argument - -from azure.cli.command_modules.role.custom import create_role_assignment, list_role_assignments, delete_role_assignments -from azure.cli.core.util import sdk_no_wait - - -def datadog_terms_list(client): - return client.list() - - -def datadog_marketplace_agreement_create(client, - properties=None): - body = {} - body['properties'] = properties - return client.create_or_update(body=body) - - -def datadog_terms_create(client, - properties=None): - body = {} - body['properties'] = properties - return client.create_or_update(body=body) - - -def datadog_terms_update(client, - properties=None): - body = {} - body['properties'] = properties - return client.create_or_update(body=body) - - -def datadog_monitor_list(client, - resource_group_name=None): - if resource_group_name: - return client.list_by_resource_group(resource_group_name=resource_group_name) - return client.list() - - -def datadog_monitor_show(client, - resource_group_name, - monitor_name): - return client.get(resource_group_name=resource_group_name, - monitor_name=monitor_name) - - -def datadog_monitor_create(cmd, - client, - resource_group_name, - monitor_name, - tags=None, - location=None, - type_=None, - datadog_organization_properties=None, - user_info=None, - sku_name=None, - no_wait=False): - body = {} - body['tags'] = tags - body['location'] = location - body['identity'] = {} - body['identity']['type'] = type_ - body['properties'] = {} - body['properties']['monitoring_status'] = "Enabled" - body['properties']['datadog_organization_properties'] = datadog_organization_properties - body['properties']['user_info'] = user_info - body['sku'] = {} - body['sku']['name'] = sku_name - poller = sdk_no_wait(no_wait, - client.begin_create, - resource_group_name=resource_group_name, - monitor_name=monitor_name, - body=body) - result = poller.result() - if result and result.identity and result.identity.principal_id: - scrope = '/subscriptions/' + result.id.split('/')[2] - create_role_assignment(cmd, role='43d0d8ad-25c7-4714-9337-8ba259a9fe05', - assignee_object_id=result.identity.principal_id, - scope=scrope, assignee_principal_type='ServicePrincipal') - return poller - - -def datadog_monitor_update(client, - resource_group_name, - monitor_name, - tags=None, - monitoring_status=None, - sku_name=None, - no_wait=False): - body = {} - body['tags'] = tags - if monitoring_status is not None: - body['properties'] = {} - body['properties']['monitoring_status'] = monitoring_status - if sku_name is not None: - body['sku'] = {} - body['sku']['name'] = sku_name - return sdk_no_wait(no_wait, - client.begin_update, - resource_group_name=resource_group_name, - monitor_name=monitor_name, - body=body) - - -def datadog_monitor_delete(cmd, - client, - resource_group_name, - monitor_name, - no_wait=False): - monitor = client.get(resource_group_name=resource_group_name, - monitor_name=monitor_name) - poller = sdk_no_wait(no_wait, - client.begin_delete, - resource_group_name=resource_group_name, - monitor_name=monitor_name) - result = poller.result() - if not result: - scrope = '/subscriptions/' + monitor.id.split('/')[2] - role_assignments = list_role_assignments(cmd, role='43d0d8ad-25c7-4714-9337-8ba259a9fe05', scope=scrope) - for i in role_assignments: - if i.get('principalId') == monitor.identity.principal_id: - delete_role_assignments(cmd, ids=[i.get('id')]) - break - return poller - - -def datadog_monitor_get_default_key(client, - resource_group_name, - monitor_name): - return client.get_default_key(resource_group_name=resource_group_name, - monitor_name=monitor_name) - - -def datadog_monitor_list_api_key(client, - resource_group_name, - monitor_name): - return client.list_api_keys(resource_group_name=resource_group_name, - monitor_name=monitor_name) - - -def datadog_monitor_list_host(client, - resource_group_name, - monitor_name): - return client.list_hosts(resource_group_name=resource_group_name, - monitor_name=monitor_name) - - -def datadog_monitor_list_linked_resource(client, - resource_group_name, - monitor_name): - return client.list_linked_resources(resource_group_name=resource_group_name, - monitor_name=monitor_name) - - -def datadog_monitor_list_monitored_resource(client, - resource_group_name, - monitor_name): - return client.list_monitored_resources(resource_group_name=resource_group_name, - monitor_name=monitor_name) - - -def datadog_monitor_refresh_set_password_link(client, - resource_group_name, - monitor_name): - return client.refresh_set_password_link(resource_group_name=resource_group_name, - monitor_name=monitor_name) - - -def datadog_monitor_set_default_key(client, - resource_group_name, - monitor_name, - created_by=None, - name=None, - key=None, - created=None): - body = {} - body['created_by'] = created_by - body['name'] = name - body['key'] = key - body['created'] = created - return client.set_default_key(resource_group_name=resource_group_name, - monitor_name=monitor_name, - body=body) - - -def datadog_tag_rule_list(client, - resource_group_name, - monitor_name): - return client.list(resource_group_name=resource_group_name, - monitor_name=monitor_name) - - -def datadog_tag_rule_show(client, - resource_group_name, - monitor_name, - rule_set_name): - return client.get(resource_group_name=resource_group_name, - monitor_name=monitor_name, - rule_set_name=rule_set_name) - - -def datadog_tag_rule_create(client, - resource_group_name, - monitor_name, - rule_set_name, - filtering_tags=None, - send_aad_logs=None, - send_subscription_logs=None, - send_resource_logs=None, - log_rules_filtering_tags=None): - body = {} - body['metric_rules'] = {} - body['metric_rules']['filtering_tags'] = filtering_tags - body['log_rules'] = {} - body['log_rules']['send_aad_logs'] = send_aad_logs - body['log_rules']['send_subscription_logs'] = send_subscription_logs - body['log_rules']['send_resource_logs'] = send_resource_logs - body['log_rules']['filtering_tags'] = log_rules_filtering_tags - return client.create_or_update(resource_group_name=resource_group_name, - monitor_name=monitor_name, - rule_set_name=rule_set_name, - body=body) - - -def datadog_tag_rule_update(instance, - resource_group_name, - monitor_name, - rule_set_name, - filtering_tags=None, - send_aad_logs=None, - send_subscription_logs=None, - send_resource_logs=None, - log_rules_filtering_tags=None): - if filtering_tags is not None: - instance.metric_rules.filtering_tags = filtering_tags - if send_aad_logs is not None: - instance.log_rules.send_aad_logs = send_aad_logs - if send_subscription_logs is not None: - instance.log_rules.send_subscription_logs = send_subscription_logs - if send_resource_logs is not None: - instance.log_rules.send_resource_logs = send_resource_logs - if log_rules_filtering_tags is not None: - instance.log_rules.filtering_tags = log_rules_filtering_tags - return instance - - -def datadog_sso_config_list(client, - resource_group_name, - monitor_name): - return client.list(resource_group_name=resource_group_name, - monitor_name=monitor_name) - - -def datadog_sso_config_show(client, - resource_group_name, - monitor_name, - configuration_name): - return client.get(resource_group_name=resource_group_name, - monitor_name=monitor_name, - configuration_name=configuration_name) - - -def datadog_sso_config_create(client, - resource_group_name, - monitor_name, - configuration_name, - properties=None, - no_wait=False): - body = {} - body['properties'] = properties - return sdk_no_wait(no_wait, - client.begin_create_or_update, - resource_group_name=resource_group_name, - monitor_name=monitor_name, - configuration_name=configuration_name, - body=body) - - -def datadog_sso_config_update(instance, - resource_group_name, - monitor_name, - configuration_name, - properties=None, - no_wait=False): - if properties is not None: - instance.properties = properties - return instance diff --git a/src/datadog/azext_datadog/manual/__init__.py b/src/datadog/azext_datadog/manual/__init__.py deleted file mode 100644 index c9cfdc73e77..00000000000 --- a/src/datadog/azext_datadog/manual/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/datadog/azext_datadog/tests/__init__.py b/src/datadog/azext_datadog/tests/__init__.py index 70488e93851..5757aea3175 100644 --- a/src/datadog/azext_datadog/tests/__init__.py +++ b/src/datadog/azext_datadog/tests/__init__.py @@ -1,116 +1,6 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- +# -------------------------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. +# Licensed under the MIT License. See License.txt in the project root for license information. # -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- -import inspect -import logging -import os -import sys -import traceback -import datetime as dt - -from azure.core.exceptions import AzureError -from azure.cli.testsdk.exceptions import CliTestError, CliExecutionError, JMESPathCheckAssertionError - - -logger = logging.getLogger('azure.cli.testsdk') -logger.addHandler(logging.StreamHandler()) -__path__ = __import__('pkgutil').extend_path(__path__, __name__) -exceptions = [] -test_map = dict() -SUCCESSED = "successed" -FAILED = "failed" - - -def try_manual(func): - def import_manual_function(origin_func): - from importlib import import_module - decorated_path = inspect.getfile(origin_func).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( - decorated_path[module_path.rfind(os.path.sep) + 1:]) - manual_file_path, manual_file_name = os.path.split(manual_path) - module_name, _ = os.path.splitext(manual_file_name) - manual_module = "..manual." + \ - ".".join(manual_file_path.split(os.path.sep) + [module_name, ]) - return getattr(import_module(manual_module, package=__name__), origin_func.__name__) - - def get_func_to_call(): - func_to_call = func - try: - func_to_call = import_manual_function(func) - logger.info("Found manual override for %s(...)", func.__name__) - except (ImportError, AttributeError): - pass - return func_to_call - - def wrapper(*args, **kwargs): - func_to_call = get_func_to_call() - logger.info("running %s()...", func.__name__) - try: - test_map[func.__name__] = dict() - test_map[func.__name__]["result"] = SUCCESSED - test_map[func.__name__]["error_message"] = "" - test_map[func.__name__]["error_stack"] = "" - test_map[func.__name__]["error_normalized"] = "" - test_map[func.__name__]["start_dt"] = dt.datetime.utcnow() - ret = func_to_call(*args, **kwargs) - except (AssertionError, AzureError, CliTestError, CliExecutionError, SystemExit, - JMESPathCheckAssertionError) as e: - 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] - test_map[func.__name__]["error_stack"] = traceback.format_exc().replace( - "\r\n", " ").replace("\n", " ")[:500] - logger.info("--------------------------------------") - logger.info("step exception: %s", e) - logger.error("--------------------------------------") - logger.error("step exception in %s: %s", func.__name__, e) - logger.info(traceback.format_exc()) - exceptions.append((func.__name__, sys.exc_info())) - else: - test_map[func.__name__]["end_dt"] = dt.datetime.utcnow() - return ret - - if inspect.isclass(func): - return get_func_to_call() - return wrapper - - -def calc_coverage(filename): - filename = filename.split(".")[0] - coverage_name = filename + "_coverage.md" - with open(coverage_name, "w") as f: - f.write("|Scenario|Result|ErrorMessage|ErrorStack|ErrorNormalized|StartDt|EndDt|\n") - total = len(test_map) - covered = 0 - for k, v in test_map.items(): - if not k.startswith("step_"): - total -= 1 - continue - if v["result"] == SUCCESSED: - covered += 1 - f.write("|{step_name}|{result}|{error_message}|{error_stack}|{error_normalized}|{start_dt}|" - "{end_dt}|\n".format(step_name=k, **v)) - f.write("Coverage: {}/{}\n".format(covered, total)) - print("Create coverage\n", file=sys.stderr) - - -def raise_if(): - if exceptions: - if len(exceptions) <= 1: - raise exceptions[0][1][1] - message = "{}\nFollowed with exceptions in other steps:\n".format(str(exceptions[0][1][1])) - message += "\n".join(["{}: {}".format(h[0], h[1][1]) for h in exceptions[1:]]) - raise exceptions[0][1][0](message).with_traceback(exceptions[0][1][2]) +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- diff --git a/src/datadog/azext_datadog/tests/latest/__init__.py b/src/datadog/azext_datadog/tests/latest/__init__.py index c9cfdc73e77..5757aea3175 100644 --- a/src/datadog/azext_datadog/tests/latest/__init__.py +++ b/src/datadog/azext_datadog/tests/latest/__init__.py @@ -1,12 +1,6 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- +# -------------------------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. +# Licensed under the MIT License. See License.txt in the project root for license information. # -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -__path__ = __import__('pkgutil').extend_path(__path__, __name__) +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- diff --git a/src/datadog/azext_datadog/tests/latest/recordings/test_datadog.yaml b/src/datadog/azext_datadog/tests/latest/recordings/test_datadog.yaml deleted file mode 100644 index 09f82b235c5..00000000000 --- a/src/datadog/azext_datadog/tests/latest/recordings/test_datadog.yaml +++ /dev/null @@ -1,3098 +0,0 @@ -interactions: -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - unknown - Connection: - - keep-alive - User-Agent: - - python/3.7.8 (Windows-10-10.0.19041-SP0) msrest/0.6.19 msrest_azure/0.6.4 - azure-mgmt-resource/10.2.0 Azure-SDK-For-Python AZURECLI/2.13.0 (MSI) - accept-language: - - en-US - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/locations?api-version=2019-11-01 - response: - body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus","name":"eastus","displayName":"East - US","regionalDisplayName":"(US) East US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-79.8164","latitude":"37.3719","physicalLocation":"Virginia","pairedRegion":[{"name":"westus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2","name":"eastus2","displayName":"East - US 2","regionalDisplayName":"(US) East US 2","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-78.3889","latitude":"36.6681","physicalLocation":"Virginia","pairedRegion":[{"name":"centralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus","name":"southcentralus","displayName":"South - Central US","regionalDisplayName":"(US) South Central US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-98.5","latitude":"29.4167","physicalLocation":"Texas","pairedRegion":[{"name":"northcentralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2","name":"westus2","displayName":"West - US 2","regionalDisplayName":"(US) West US 2","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-119.852","latitude":"47.233","physicalLocation":"Washington","pairedRegion":[{"name":"westcentralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westcentralus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiaeast","name":"australiaeast","displayName":"Australia - East","regionalDisplayName":"(Asia Pacific) Australia East","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia - Pacific","longitude":"151.2094","latitude":"-33.86","physicalLocation":"New - South Wales","pairedRegion":[{"name":"australiasoutheast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiasoutheast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasia","name":"southeastasia","displayName":"Southeast - Asia","regionalDisplayName":"(Asia Pacific) Southeast Asia","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia - Pacific","longitude":"103.833","latitude":"1.283","physicalLocation":"Singapore","pairedRegion":[{"name":"eastasia","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasia"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northeurope","name":"northeurope","displayName":"North - Europe","regionalDisplayName":"(Europe) North Europe","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"-6.2597","latitude":"53.3478","physicalLocation":"Ireland","pairedRegion":[{"name":"westeurope","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westeurope"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uksouth","name":"uksouth","displayName":"UK - South","regionalDisplayName":"(Europe) UK South","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"-0.799","latitude":"50.941","physicalLocation":"London","pairedRegion":[{"name":"ukwest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/ukwest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westeurope","name":"westeurope","displayName":"West - Europe","regionalDisplayName":"(Europe) West Europe","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"4.9","latitude":"52.3667","physicalLocation":"Netherlands","pairedRegion":[{"name":"northeurope","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northeurope"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralus","name":"centralus","displayName":"Central - US","regionalDisplayName":"(US) Central US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-93.6208","latitude":"41.5908","physicalLocation":"Iowa","pairedRegion":[{"name":"eastus2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralus","name":"northcentralus","displayName":"North - Central US","regionalDisplayName":"(US) North Central US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-87.6278","latitude":"41.8819","physicalLocation":"Illinois","pairedRegion":[{"name":"southcentralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus","name":"westus","displayName":"West - US","regionalDisplayName":"(US) West US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-122.417","latitude":"37.783","physicalLocation":"California","pairedRegion":[{"name":"eastus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth","name":"southafricanorth","displayName":"South - Africa North","regionalDisplayName":"(Africa) South Africa North","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Africa","longitude":"28.218370","latitude":"-25.731340","physicalLocation":"Johannesburg","pairedRegion":[{"name":"southafricawest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralindia","name":"centralindia","displayName":"Central - India","regionalDisplayName":"(Asia Pacific) Central India","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia - Pacific","longitude":"73.9197","latitude":"18.5822","physicalLocation":"Pune","pairedRegion":[{"name":"southindia","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasia","name":"eastasia","displayName":"East - Asia","regionalDisplayName":"(Asia Pacific) East Asia","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia - Pacific","longitude":"114.188","latitude":"22.267","physicalLocation":"Hong - Kong","pairedRegion":[{"name":"southeastasia","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasia"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast","name":"japaneast","displayName":"Japan - East","regionalDisplayName":"(Asia Pacific) Japan East","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia - Pacific","longitude":"139.77","latitude":"35.68","physicalLocation":"Tokyo, - Saitama","pairedRegion":[{"name":"japanwest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreacentral","name":"koreacentral","displayName":"Korea - Central","regionalDisplayName":"(Asia Pacific) Korea Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia - Pacific","longitude":"126.9780","latitude":"37.5665","physicalLocation":"Seoul","pairedRegion":[{"name":"koreasouth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreasouth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadacentral","name":"canadacentral","displayName":"Canada - Central","regionalDisplayName":"(Canada) Canada Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Canada","longitude":"-79.383","latitude":"43.653","physicalLocation":"Toronto","pairedRegion":[{"name":"canadaeast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadaeast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francecentral","name":"francecentral","displayName":"France - Central","regionalDisplayName":"(Europe) France Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"2.3730","latitude":"46.3772","physicalLocation":"Paris","pairedRegion":[{"name":"francesouth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francesouth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanywestcentral","name":"germanywestcentral","displayName":"Germany - West Central","regionalDisplayName":"(Europe) Germany West Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"8.682127","latitude":"50.110924","physicalLocation":"Frankfurt","pairedRegion":[{"name":"germanynorth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanynorth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwayeast","name":"norwayeast","displayName":"Norway - East","regionalDisplayName":"(Europe) Norway East","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"10.752245","latitude":"59.913868","physicalLocation":"Norway","pairedRegion":[{"name":"norwaywest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwaywest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandnorth","name":"switzerlandnorth","displayName":"Switzerland - North","regionalDisplayName":"(Europe) Switzerland North","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"8.564572","latitude":"47.451542","physicalLocation":"Zurich","pairedRegion":[{"name":"switzerlandwest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandwest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaenorth","name":"uaenorth","displayName":"UAE - North","regionalDisplayName":"(Middle East) UAE North","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Middle - East","longitude":"55.316666","latitude":"25.266666","physicalLocation":"Dubai","pairedRegion":[{"name":"uaecentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaecentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsouth","name":"brazilsouth","displayName":"Brazil - South","regionalDisplayName":"(South America) Brazil South","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"South - America","longitude":"-46.633","latitude":"-23.55","physicalLocation":"Sao - Paulo State","pairedRegion":[{"name":"southcentralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralusstage","name":"centralusstage","displayName":"Central - US (Stage)","regionalDisplayName":"(US) Central US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastusstage","name":"eastusstage","displayName":"East - US (Stage)","regionalDisplayName":"(US) East US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2stage","name":"eastus2stage","displayName":"East - US 2 (Stage)","regionalDisplayName":"(US) East US 2 (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralusstage","name":"northcentralusstage","displayName":"North - Central US (Stage)","regionalDisplayName":"(US) North Central US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralusstage","name":"southcentralusstage","displayName":"South - Central US (Stage)","regionalDisplayName":"(US) South Central US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westusstage","name":"westusstage","displayName":"West - US (Stage)","regionalDisplayName":"(US) West US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2stage","name":"westus2stage","displayName":"West - US 2 (Stage)","regionalDisplayName":"(US) West US 2 (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/asia","name":"asia","displayName":"Asia","regionalDisplayName":"Asia","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/asiapacific","name":"asiapacific","displayName":"Asia - Pacific","regionalDisplayName":"Asia Pacific","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australia","name":"australia","displayName":"Australia","regionalDisplayName":"Australia","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazil","name":"brazil","displayName":"Brazil","regionalDisplayName":"Brazil","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canada","name":"canada","displayName":"Canada","regionalDisplayName":"Canada","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/europe","name":"europe","displayName":"Europe","regionalDisplayName":"Europe","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/global","name":"global","displayName":"Global","regionalDisplayName":"Global","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/india","name":"india","displayName":"India","regionalDisplayName":"India","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japan","name":"japan","displayName":"Japan","regionalDisplayName":"Japan","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uk","name":"uk","displayName":"United - Kingdom","regionalDisplayName":"United Kingdom","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/unitedstates","name":"unitedstates","displayName":"United - States","regionalDisplayName":"United States","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasiastage","name":"eastasiastage","displayName":"East - Asia (Stage)","regionalDisplayName":"(Asia Pacific) East Asia (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"Asia - Pacific"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasiastage","name":"southeastasiastage","displayName":"Southeast - Asia (Stage)","regionalDisplayName":"(Asia Pacific) Southeast Asia (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"Asia - Pacific"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap","name":"centraluseuap","displayName":"Central - US EUAP","regionalDisplayName":"(US) Central US EUAP","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"US","longitude":"-93.6208","latitude":"41.5908","pairedRegion":[{"name":"eastus2euap","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap","name":"eastus2euap","displayName":"East - US 2 EUAP","regionalDisplayName":"(US) East US 2 EUAP","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"US","longitude":"-78.3889","latitude":"36.6681","pairedRegion":[{"name":"centraluseuap","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westcentralus","name":"westcentralus","displayName":"West - Central US","regionalDisplayName":"(US) West Central US","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"US","longitude":"-110.234","latitude":"40.890","physicalLocation":"Wyoming","pairedRegion":[{"name":"westus2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest","name":"southafricawest","displayName":"South - Africa West","regionalDisplayName":"(Africa) South Africa West","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Africa","longitude":"18.843266","latitude":"-34.075691","physicalLocation":"Cape - Town","pairedRegion":[{"name":"southafricanorth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral","name":"australiacentral","displayName":"Australia - Central","regionalDisplayName":"(Asia Pacific) Australia Central","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia - Pacific","longitude":"149.1244","latitude":"-35.3075","physicalLocation":"Canberra","pairedRegion":[{"name":"australiacentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2","name":"australiacentral2","displayName":"Australia - Central 2","regionalDisplayName":"(Asia Pacific) Australia Central 2","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia - Pacific","longitude":"149.1244","latitude":"-35.3075","physicalLocation":"Canberra","pairedRegion":[{"name":"australiacentral2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiasoutheast","name":"australiasoutheast","displayName":"Australia - Southeast","regionalDisplayName":"(Asia Pacific) Australia Southeast","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia - Pacific","longitude":"144.9631","latitude":"-37.8136","physicalLocation":"Victoria","pairedRegion":[{"name":"australiaeast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiaeast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest","name":"japanwest","displayName":"Japan - West","regionalDisplayName":"(Asia Pacific) Japan West","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia - Pacific","longitude":"135.5022","latitude":"34.6939","physicalLocation":"Osaka","pairedRegion":[{"name":"japaneast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreasouth","name":"koreasouth","displayName":"Korea - South","regionalDisplayName":"(Asia Pacific) Korea South","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia - Pacific","longitude":"129.0756","latitude":"35.1796","physicalLocation":"Busan","pairedRegion":[{"name":"koreacentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreacentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia","name":"southindia","displayName":"South - India","regionalDisplayName":"(Asia Pacific) South India","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia - Pacific","longitude":"80.1636","latitude":"12.9822","physicalLocation":"Chennai","pairedRegion":[{"name":"centralindia","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralindia"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westindia","name":"westindia","displayName":"West - India","regionalDisplayName":"(Asia Pacific) West India","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia - Pacific","longitude":"72.868","latitude":"19.088","physicalLocation":"Mumbai","pairedRegion":[{"name":"southindia","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadaeast","name":"canadaeast","displayName":"Canada - East","regionalDisplayName":"(Canada) Canada East","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Canada","longitude":"-71.217","latitude":"46.817","physicalLocation":"Quebec","pairedRegion":[{"name":"canadacentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadacentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francesouth","name":"francesouth","displayName":"France - South","regionalDisplayName":"(Europe) France South","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Europe","longitude":"2.1972","latitude":"43.8345","physicalLocation":"Marseille","pairedRegion":[{"name":"francecentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francecentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanynorth","name":"germanynorth","displayName":"Germany - North","regionalDisplayName":"(Europe) Germany North","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Europe","longitude":"8.806422","latitude":"53.073635","physicalLocation":"Berlin","pairedRegion":[{"name":"germanywestcentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanywestcentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwaywest","name":"norwaywest","displayName":"Norway - West","regionalDisplayName":"(Europe) Norway West","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Europe","longitude":"5.733107","latitude":"58.969975","physicalLocation":"Norway","pairedRegion":[{"name":"norwayeast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwayeast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandwest","name":"switzerlandwest","displayName":"Switzerland - West","regionalDisplayName":"(Europe) Switzerland West","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Europe","longitude":"6.143158","latitude":"46.204391","physicalLocation":"Geneva","pairedRegion":[{"name":"switzerlandnorth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandnorth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/ukwest","name":"ukwest","displayName":"UK - West","regionalDisplayName":"(Europe) UK West","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Europe","longitude":"-3.084","latitude":"53.427","physicalLocation":"Cardiff","pairedRegion":[{"name":"uksouth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uksouth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaecentral","name":"uaecentral","displayName":"UAE - Central","regionalDisplayName":"(Middle East) UAE Central","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Middle - East","longitude":"54.366669","latitude":"24.466667","physicalLocation":"Abu - Dhabi","pairedRegion":[{"name":"uaenorth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaenorth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsoutheast","name":"brazilsoutheast","displayName":"Brazil - Southeast","regionalDisplayName":"(South America) Brazil Southeast","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"South - America","longitude":"-43.2075","latitude":"-22.90278","physicalLocation":"Rio","pairedRegion":[{"name":"brazilsouth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsouth"}]}}]}' - headers: - cache-control: - - no-cache - content-length: - - '25098' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:08:17 GMT - expires: - - '-1' - pragma: - - no-cache - strict-transport-security: - - max-age=31536000; includeSubDomains - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: '{"tags": {"Environment": "Dev"}, "location": "eastus2euap", "identity": - {"type": "SystemAssigned"}, "properties": {"monitoringStatus": "Enabled", "userInfo": - {"name": "Alice", "emailAddress": "alice@microsoft.com", "phoneNumber": "123-456-7890"}}, - "sku": {"name": "drawdown_testing_20200904_Monthly"}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor create - Connection: - - keep-alive - Content-Length: - - '301' - Content-Type: - - application/json - ParameterSetName: - - --name --sku-name --location --identity-type --monitoring-status --user-info - --tags --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor?api-version=2021-03-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","name":"myMonitor","type":"Microsoft.Datadog/monitors","sku":{"name":"drawdown_testing_20200904_Monthly"},"location":"eastus2euap","tags":{"Environment":"Dev"},"identity":{"principalId":"396616d4-f232-4f78-b79f-8094954bc32b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","type":"SystemAssigned"},"properties":{"provisioningState":"Accepted","monitoringStatus":"Enabled","marketplaceSubscriptionStatus":"Active","datadogOrganizationProperties":{"name":"myMonitor","id":null,"linkingAuthCode":null,"linkingClientId":null,"enterpriseAppId":null},"userInfo":null,"liftrResourceCategory":"MonitorLogs","liftrResourcePreference":0}}' - headers: - azure-asyncoperation: - - https://management.azure.com/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/6def0190-d70c-4af9-984e-6130d52a00ea?api-version=2021-03-01 - cache-control: - - no-cache - content-length: - - '828' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:08:21 GMT - etag: - - '"e50229f3-0000-0200-0000-5f8b5d460000"' - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-writes: - - '1199' - status: - code: 201 - message: Created -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor create - Connection: - - keep-alive - ParameterSetName: - - --name --sku-name --location --identity-type --monitoring-status --user-info - --tags --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/6def0190-d70c-4af9-984e-6130d52a00ea?api-version=2021-03-01 - response: - body: - string: '{"id":"/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/6def0190-d70c-4af9-984e-6130d52a00ea","name":"6def0190-d70c-4af9-984e-6130d52a00ea","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","status":"Accepted","startTime":"2020-10-17T21:08:21.3672152Z"}' - headers: - cache-control: - - no-cache - content-length: - - '428' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:08:51 GMT - etag: - - '"d901328d-0000-0200-0000-5f8b5d450000"' - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor create - Connection: - - keep-alive - ParameterSetName: - - --name --sku-name --location --identity-type --monitoring-status --user-info - --tags --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/6def0190-d70c-4af9-984e-6130d52a00ea?api-version=2021-03-01 - response: - body: - string: '{"id":"/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/6def0190-d70c-4af9-984e-6130d52a00ea","name":"6def0190-d70c-4af9-984e-6130d52a00ea","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","status":"Accepted","startTime":"2020-10-17T21:08:21.3672152Z"}' - headers: - cache-control: - - no-cache - content-length: - - '428' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:09:21 GMT - etag: - - '"d901328d-0000-0200-0000-5f8b5d450000"' - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor create - Connection: - - keep-alive - ParameterSetName: - - --name --sku-name --location --identity-type --monitoring-status --user-info - --tags --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/6def0190-d70c-4af9-984e-6130d52a00ea?api-version=2021-03-01 - response: - body: - string: '{"id":"/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/6def0190-d70c-4af9-984e-6130d52a00ea","name":"6def0190-d70c-4af9-984e-6130d52a00ea","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","status":"Succeeded","startTime":"2020-10-17T21:08:21.3672152Z","error":{},"properties":null}' - headers: - cache-control: - - no-cache - content-length: - - '458' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:09:51 GMT - etag: - - '"d9011a92-0000-0200-0000-5f8b5d9d0000"' - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor create - Connection: - - keep-alive - ParameterSetName: - - --name --sku-name --location --identity-type --monitoring-status --user-info - --tags --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor?api-version=2021-03-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","name":"myMonitor","type":"Microsoft.Datadog/monitors","sku":{"name":"drawdown_testing_20200904_Monthly"},"location":"eastus2euap","tags":{"Environment":"Dev"},"identity":{"principalId":"396616d4-f232-4f78-b79f-8094954bc32b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","type":"SystemAssigned"},"properties":{"provisioningState":"Succeeded","monitoringStatus":"Enabled","marketplaceSubscriptionStatus":"Active","datadogOrganizationProperties":{"name":"myMonitor","id":"ki0vqopr9ouvv7t2","linkingAuthCode":null,"linkingClientId":null,"enterpriseAppId":null},"userInfo":null,"liftrResourceCategory":"MonitorLogs","liftrResourcePreference":0}}' - headers: - cache-control: - - no-cache - content-length: - - '843' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:09:52 GMT - etag: - - '"e50242f7-0000-0200-0000-5f8b5d9c0000"' - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor create - Connection: - - keep-alive - ParameterSetName: - - --name --sku-name --location --identity-type --monitoring-status --user-info - --tags --resource-group - User-Agent: - - python/3.7.8 (Windows-10-10.0.19041-SP0) msrest/0.6.19 msrest_azure/0.6.4 - azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.13.0 - accept-language: - - en-US - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName%20eq%20%27Monitoring%20Reader%27&api-version=2018-01-01-preview - response: - body: - string: '{"value":[{"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"}]}' - headers: - cache-control: - - no-cache - content-length: - - '683' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 13 Jan 2021 04:08:36 GMT - expires: - - '-1' - pragma: - - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: '{"properties": {"roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/43d0d8ad-25c7-4714-9337-8ba259a9fe05", - "principalId": "d75e5aca-8548-4e57-b550-24e11351300d", "principalType": "ServicePrincipal"}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor create - Connection: - - keep-alive - Content-Length: - - '270' - Content-Type: - - application/json; charset=utf-8 - Cookie: - - x-ms-gateway-slice=Production - ParameterSetName: - - --name --sku-name --location --identity-type --monitoring-status --user-info - --tags --resource-group - User-Agent: - - python/3.7.8 (Windows-10-10.0.19041-SP0) msrest/0.6.19 msrest_azure/0.6.4 - azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.13.0 - accept-language: - - en-US - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/88888888-0000-0000-0000-000000000001?api-version=2020-04-01-preview - response: - body: - string: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/43d0d8ad-25c7-4714-9337-8ba259a9fe05","principalId":"d75e5aca-8548-4e57-b550-24e11351300d","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-01-13T04:08:37.5711851Z","updatedOn":"2021-01-13T04:08:37.7211888Z","createdBy":null,"updatedBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/88888888-0000-0000-0000-000000000001","type":"Microsoft.Authorization/roleAssignments","name":"88888888-0000-0000-0000-000000000001"}' - headers: - cache-control: - - no-cache - content-length: - - '823' - content-type: - - application/json; charset=utf-8 - date: - - Wed, 13 Jan 2021 04:08:38 GMT - expires: - - '-1' - pragma: - - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - strict-transport-security: - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-writes: - - '1199' - status: - code: 201 - message: Created -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor wait - Connection: - - keep-alive - ParameterSetName: - - --created --name --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor?api-version=2021-03-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","name":"myMonitor","type":"Microsoft.Datadog/monitors","sku":{"name":"drawdown_testing_20200904_Monthly"},"location":"eastus2euap","tags":{"Environment":"Dev"},"identity":{"principalId":"396616d4-f232-4f78-b79f-8094954bc32b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","type":"SystemAssigned"},"properties":{"provisioningState":"Succeeded","monitoringStatus":"Enabled","marketplaceSubscriptionStatus":"Active","datadogOrganizationProperties":{"name":"myMonitor","id":"ki0vqopr9ouvv7t2","linkingAuthCode":null,"linkingClientId":null,"enterpriseAppId":null},"userInfo":null,"liftrResourceCategory":"MonitorLogs","liftrResourcePreference":0}}' - headers: - cache-control: - - no-cache - content-length: - - '843' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:09:53 GMT - etag: - - '"e50242f7-0000-0200-0000-5f8b5d9c0000"' - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor show - Connection: - - keep-alive - ParameterSetName: - - --name --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor?api-version=2021-03-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","name":"myMonitor","type":"Microsoft.Datadog/monitors","sku":{"name":"drawdown_testing_20200904_Monthly"},"location":"eastus2euap","tags":{"Environment":"Dev"},"identity":{"principalId":"396616d4-f232-4f78-b79f-8094954bc32b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","type":"SystemAssigned"},"properties":{"provisioningState":"Succeeded","monitoringStatus":"Enabled","marketplaceSubscriptionStatus":"Active","datadogOrganizationProperties":{"name":"myMonitor","id":"ki0vqopr9ouvv7t2","linkingAuthCode":null,"linkingClientId":null,"enterpriseAppId":null},"userInfo":null,"liftrResourceCategory":"MonitorLogs","liftrResourcePreference":0}}' - headers: - cache-control: - - no-cache - content-length: - - '843' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:09:55 GMT - etag: - - '"e50242f7-0000-0200-0000-5f8b5d9c0000"' - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor list - Connection: - - keep-alive - ParameterSetName: - - -g - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Datadog/monitors?api-version=2021-03-01 - response: - body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","name":"myMonitor","type":"Microsoft.Datadog/monitors","sku":{"name":"drawdown_testing_20200904_Monthly"},"location":"eastus2euap","tags":{"Environment":"Dev"},"identity":{"principalId":"396616d4-f232-4f78-b79f-8094954bc32b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","type":"SystemAssigned"},"properties":{"provisioningState":"Succeeded","monitoringStatus":"Enabled","marketplaceSubscriptionStatus":"Active","datadogOrganizationProperties":{"name":"myMonitor","id":"ki0vqopr9ouvv7t2","linkingAuthCode":null,"linkingClientId":null,"enterpriseAppId":null},"userInfo":null,"liftrResourceCategory":"MonitorLogs","liftrResourcePreference":0}}]}' - headers: - cache-control: - - no-cache - content-length: - - '1524' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:09:56 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor list - Connection: - - keep-alive - ParameterSetName: - - --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors?api-version=2021-03-01 - response: - body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","name":"myMonitor","type":"Microsoft.Datadog/monitors","sku":{"name":"drawdown_testing_20200904_Monthly"},"location":"eastus2euap","tags":{"Environment":"Dev"},"identity":{"principalId":"396616d4-f232-4f78-b79f-8094954bc32b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","type":"SystemAssigned"},"properties":{"provisioningState":"Succeeded","monitoringStatus":"Enabled","marketplaceSubscriptionStatus":"Active","datadogOrganizationProperties":{"name":"myMonitor","id":"ki0vqopr9ouvv7t2","linkingAuthCode":null,"linkingClientId":null,"enterpriseAppId":null},"userInfo":null,"liftrResourceCategory":"MonitorLogs","liftrResourcePreference":0}}]}' - headers: - cache-control: - - no-cache - content-length: - - '855' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:09:56 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: '{"tags": {"Environment": "Dev2"}, "properties": {"monitoringStatus": "Enabled"}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor update - Connection: - - keep-alive - Content-Length: - - '80' - Content-Type: - - application/json - ParameterSetName: - - --name --monitoring-status --tags --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: PATCH - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor?api-version=2021-03-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","name":"myMonitor","type":"Microsoft.Datadog/monitors","sku":{"name":"drawdown_testing_20200904_Monthly"},"location":"eastus2euap","tags":{"Environment":"Dev2"},"identity":{"principalId":"396616d4-f232-4f78-b79f-8094954bc32b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","type":"SystemAssigned"},"properties":{"provisioningState":"Succeeded","monitoringStatus":"Enabled","marketplaceSubscriptionStatus":"Active","datadogOrganizationProperties":{"name":"myMonitor","id":"ki0vqopr9ouvv7t2","linkingAuthCode":null,"linkingClientId":null,"enterpriseAppId":null},"userInfo":null,"liftrResourceCategory":"MonitorLogs","liftrResourcePreference":0}}' - headers: - cache-control: - - no-cache - content-length: - - '844' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:09:58 GMT - etag: - - '"e50255f7-0000-0200-0000-5f8b5da60000"' - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-writes: - - '1199' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog host list - Connection: - - keep-alive - Content-Length: - - '0' - ParameterSetName: - - --monitor-name --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/listHosts?api-version=2021-03-01 - response: - body: - string: '{"value":[],"nextLink":null}' - headers: - cache-control: - - no-cache - content-length: - - '28' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:10:00 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog linked-resource list - Connection: - - keep-alive - Content-Length: - - '0' - ParameterSetName: - - --monitor-name --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/listLinkedResources?api-version=2021-03-01 - response: - body: - string: '{"value":[{"id":"/SUBSCRIPTIONS/00000000-0000-0000-0000-000000000000/RESOURCEGROUPS/CLITESTXNSTEX6BTRQAXL5WXPLPDRWJGS3KHBD75DKEM6MZRXW3MDPWWNWCIKJ47J76SUYHW2PQ/PROVIDERS/MICROSOFT.DATADOG/MONITORS/MYMONITOR"}],"nextLink":null}' - headers: - cache-control: - - no-cache - content-length: - - '226' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:10:01 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitored-resource list - Connection: - - keep-alive - Content-Length: - - '0' - ParameterSetName: - - --monitor-name --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/listMonitoredResources?api-version=2021-03-01 - response: - body: - string: '{"value":[],"nextLink":null}' - headers: - cache-control: - - no-cache - content-length: - - '28' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:10:02 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog set-password-link get - Connection: - - keep-alive - Content-Length: - - '0' - ParameterSetName: - - --monitor-name --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/refreshSetPasswordLink?api-version=2021-03-01 - response: - body: - string: '{"setPasswordLink":null}' - headers: - cache-control: - - no-cache - content-length: - - '24' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:10:03 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-writes: - - '1198' - status: - code: 200 - message: OK -- request: - body: '{"properties": {"singleSignOnState": "Enable", "enterpriseAppId": "ac754169-3489-42ae-bd06-8be89db12e58"}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog sso-config create - Connection: - - keep-alive - Content-Length: - - '106' - Content-Type: - - application/json - ParameterSetName: - - --configuration-name --monitor-name --properties --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/singleSignOnConfigurations/default?api-version=2021-03-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/singleSignOnConfigurations/default","name":"default","type":"Microsoft.Datadog/monitors/singleSignOnConfigurations","properties":{"singleSignOnState":"Enable","enterpriseAppId":"ac754169-3489-42ae-bd06-8be89db12e58","singleSignOnUrl":null}}' - headers: - azure-asyncoperation: - - https://management.azure.com/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/b61a2387-27d6-4d54-bcc9-4a52442f8c24?api-version=2021-03-01 - cache-control: - - no-cache - content-length: - - '437' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:10:03 GMT - etag: - - '"520117a2-0000-0200-0000-5f8b5dac0000"' - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-writes: - - '1198' - status: - code: 201 - message: Created -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog sso-config create - Connection: - - keep-alive - ParameterSetName: - - --configuration-name --monitor-name --properties --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/b61a2387-27d6-4d54-bcc9-4a52442f8c24?api-version=2021-03-01 - response: - body: - string: '{"id":"/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/b61a2387-27d6-4d54-bcc9-4a52442f8c24","name":"b61a2387-27d6-4d54-bcc9-4a52442f8c24","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/singleSignOnConfigurations/default","status":"Succeeded","startTime":"2020-10-17T21:10:04.6216693Z","error":{},"properties":null}' - headers: - cache-control: - - no-cache - content-length: - - '493' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:10:34 GMT - etag: - - '"d9014993-0000-0200-0000-5f8b5db50000"' - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog sso-config create - Connection: - - keep-alive - ParameterSetName: - - --configuration-name --monitor-name --properties --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/singleSignOnConfigurations/default?api-version=2021-03-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/singleSignOnConfigurations/default","name":"default","type":"Microsoft.Datadog/monitors/singleSignOnConfigurations","properties":{"singleSignOnState":"Enable","enterpriseAppId":"ac754169-3489-42ae-bd06-8be89db12e58","singleSignOnUrl":"https://app.datadoghq.com/account/login/id/ki0vqopr9ouvv7t2"}}' - headers: - cache-control: - - no-cache - content-length: - - '494' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:10:35 GMT - etag: - - '"52011ba2-0000-0200-0000-5f8b5db50000"' - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog sso-config show - Connection: - - keep-alive - ParameterSetName: - - --configuration-name --monitor-name --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/singleSignOnConfigurations/default?api-version=2021-03-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/singleSignOnConfigurations/default","name":"default","type":"Microsoft.Datadog/monitors/singleSignOnConfigurations","properties":{"singleSignOnState":"Enable","enterpriseAppId":"ac754169-3489-42ae-bd06-8be89db12e58","singleSignOnUrl":"https://app.datadoghq.com/account/login/id/ki0vqopr9ouvv7t2"}}' - headers: - cache-control: - - no-cache - content-length: - - '494' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:10:36 GMT - etag: - - '"52011ba2-0000-0200-0000-5f8b5db50000"' - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog sso-config list - Connection: - - keep-alive - ParameterSetName: - - --monitor-name --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/singleSignOnConfigurations?api-version=2021-03-01 - response: - body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/singleSignOnConfigurations/default","name":"default","type":"Microsoft.Datadog/monitors/singleSignOnConfigurations","properties":{"singleSignOnState":"Enable","enterpriseAppId":"ac754169-3489-42ae-bd06-8be89db12e58","singleSignOnUrl":"https://app.datadoghq.com/account/login/id/ki0vqopr9ouvv7t2"}}]}' - headers: - cache-control: - - no-cache - content-length: - - '506' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:10:37 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: '{"properties": {"logRules": {"sendAadLogs": false, "sendSubscriptionLogs": - true, "sendResourceLogs": true, "filteringTags": [{"name": "Environment", "value": - "Prod", "action": "Include"}, {"name": "Environment", "value": "Dev", "action": - "Exclude"}]}}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog tag-rule create - Connection: - - keep-alive - Content-Length: - - '252' - Content-Type: - - application/json - ParameterSetName: - - --monitor-name --log-rules-filtering-tags --log-rules-filtering-tags --log-rules-send-aad-logs - --log-rules-send-resource-logs --log-rules-send-subscription-logs --resource-group - --rule-set-name - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/tagRules/default?api-version=2021-03-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/tagRules/default","name":"default","type":"Microsoft.Datadog/monitors/tagRules","properties":{"logRules":{"sendAadLogs":false,"sendSubscriptionLogs":true,"sendResourceLogs":true,"filteringTags":[{"name":"Environment","value":"Prod","action":"Include"},{"name":"Environment","value":"Dev","action":"Exclude"}]},"metricRules":{"filteringTags":[]}}}' - headers: - cache-control: - - no-cache - content-length: - - '543' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:10:38 GMT - etag: - - '"330415e6-0000-0200-0000-5f8b5dce0000"' - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-writes: - - '1199' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog tag-rule show - Connection: - - keep-alive - ParameterSetName: - - --monitor-name --resource-group --rule-set-name - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/tagRules/default?api-version=2021-03-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/tagRules/default","name":"default","type":"Microsoft.Datadog/monitors/tagRules","properties":{"logRules":{"sendAadLogs":false,"sendSubscriptionLogs":true,"sendResourceLogs":true,"filteringTags":[{"name":"Environment","value":"Prod","action":"Include"},{"name":"Environment","value":"Dev","action":"Exclude"}]},"metricRules":{"filteringTags":[]}}}' - headers: - cache-control: - - no-cache - content-length: - - '543' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:10:39 GMT - etag: - - '"330415e6-0000-0200-0000-5f8b5dce0000"' - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog tag-rule list - Connection: - - keep-alive - ParameterSetName: - - --monitor-name --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/tagRules?api-version=2021-03-01 - response: - body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/tagRules/default","name":"default","type":"Microsoft.Datadog/monitors/tagRules","properties":{"logRules":{"sendAadLogs":false,"sendSubscriptionLogs":true,"sendResourceLogs":true,"filteringTags":[{"name":"Environment","value":"Prod","action":"Include"},{"name":"Environment","value":"Dev","action":"Exclude"}]},"metricRules":{"filteringTags":[]}}}]}' - headers: - cache-control: - - no-cache - content-length: - - '555' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:10:40 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog api-key list - Connection: - - keep-alive - Content-Length: - - '0' - ParameterSetName: - - --monitor-name --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/listApiKeys?api-version=2021-03-01 - response: - body: - string: '{"value":[{"createdBy":"alice@microsoft.com","name":"Azure Admin User - API Key","key":"bbbbbbbbbbaaaaaaaaaaa","created":"2020-10-17 21:09:39"}],"nextLink":null}' - headers: - cache-control: - - no-cache - content-length: - - '170' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:10:40 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-writes: - - '1199' - status: - code: 200 - message: OK -- request: - body: '{"key": "1111111111111111aaaaaaaaaaaaaaaa"}' - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog api-key set-default-key - Connection: - - keep-alive - Content-Length: - - '43' - Content-Type: - - application/json - ParameterSetName: - - --monitor-name --key --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/setDefaultKey?api-version=2021-03-01 - response: - body: - string: 'null' - headers: - cache-control: - - no-cache - content-length: - - '4' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:10:44 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-writes: - - '1199' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog api-key get-default-key - Connection: - - keep-alive - Content-Length: - - '0' - ParameterSetName: - - --monitor-name --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: POST - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor/getDefaultKey?api-version=2021-03-01 - response: - body: - string: '{"createdBy":null,"name":null,"key":"1111111111111111aaaaaaaaaaaaaaaa","created":null}' - headers: - cache-control: - - no-cache - content-length: - - '86' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:10:45 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-writes: - - '1199' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor create - Connection: - - keep-alive - ParameterSetName: - - --name --sku-name --location --identity-type --monitoring-status --user-info - --tags --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor?api-version=2021-03-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","name":"myMonitor","type":"Microsoft.Datadog/monitors","sku":{"name":"drawdown_testing_20200904_Monthly"},"location":"eastus2euap","tags":{"Environment":"Dev"},"identity":{"principalId":"396616d4-f232-4f78-b79f-8094954bc32b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","type":"SystemAssigned"},"properties":{"provisioningState":"Succeeded","monitoringStatus":"Enabled","marketplaceSubscriptionStatus":"Active","datadogOrganizationProperties":{"name":"myMonitor","id":"ki0vqopr9ouvv7t2","linkingAuthCode":null,"linkingClientId":null,"enterpriseAppId":null},"userInfo":null,"liftrResourceCategory":"MonitorLogs","liftrResourcePreference":0}}' - headers: - cache-control: - - no-cache - content-length: - - '843' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:09:52 GMT - etag: - - '"e50242f7-0000-0200-0000-5f8b5d9c0000"' - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor delete - Connection: - - keep-alive - Content-Length: - - '0' - ParameterSetName: - - -y --name --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: DELETE - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor?api-version=2021-03-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","name":"myMonitor","type":"Microsoft.Datadog/monitors","sku":{"name":"drawdown_testing_20200904_Monthly"},"location":"eastus2euap","tags":{"environment":"Dev2"},"systemData":{"createdBy":"alice@microsoft.com","createdByType":"User","createdAt":"2020-10-17T21:08:18.7403557Z","lastModifiedBy":"ae11f5fb-c627-4eec-b4a0-f7b5969426e5","lastModifiedByType":"Application","lastModifiedAt":"2020-10-17T21:10:42.1874411Z"},"identity":{"principalId":"396616d4-f232-4f78-b79f-8094954bc32b","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","type":"SystemAssigned"},"properties":{"provisioningState":"Deleting","monitoringStatus":"Enabled","marketplaceSubscriptionStatus":"Active","datadogOrganizationProperties":{"name":"myMonitor","id":"ki0vqopr9ouvv7t2","linkingAuthCode":null,"linkingClientId":null,"enterpriseAppId":null},"userInfo":null,"liftrResourceCategory":"MonitorLogs","liftrResourcePreference":0}}' - headers: - cache-control: - - no-cache - content-length: - - '1097' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:10:46 GMT - etag: - - '"e502e6f8-0000-0200-0000-5f8b5dd60000"' - expires: - - '-1' - location: - - https://management.azure.com/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/b0320776-fb4c-4bf3-936c-9711b18b5009?api-version=2021-03-01 - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-deletes: - - '14999' - status: - code: 202 - message: Accepted -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor delete - Connection: - - keep-alive - ParameterSetName: - - -y --name --resource-group - User-Agent: - - AZURECLI/2.13.0 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/b0320776-fb4c-4bf3-936c-9711b18b5009?api-version=2021-03-01 - response: - body: - string: '{"id":"/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/b0320776-fb4c-4bf3-936c-9711b18b5009","name":"b0320776-fb4c-4bf3-936c-9711b18b5009","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","status":"Succeeded","startTime":"2020-10-17T21:10:46.439404Z","error":{},"properties":null}' - headers: - cache-control: - - no-cache - content-length: - - '457' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 17 Oct 2020 21:11:15 GMT - etag: - - '"d9019c95-0000-0200-0000-5f8b5dde0000"' - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog terms list - Connection: - - keep-alive - User-Agent: - - AZURECLI/2.17.1 azsdk-python-microsoftdatadogclient/unknown Python/3.6.8 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Datadog/agreements?api-version=2021-03-01 - response: - body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Datadog/agreements/marketplace","name":"marketplace","type":"Microsoft.Datadog/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":true}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Datadog/agreements/datadog","name":"datadog","type":"Microsoft.Datadog/agreements","properties":{"publisher":"Datadog","product":"Datadog","plan":"Datadog","licenseTextLink":"https://www.datadoghq.com/pdf/Datadog_AzureMarketplace.pdf","privacyPolicyLink":"https://www.datadoghq.com/legal/privacy/","retrieveDatetime":null,"signature":"","accepted":true}}]}' - headers: - cache-control: - - no-cache - content-length: - - '897' - content-type: - - application/json; charset=utf-8 - date: - - Fri, 08 Jan 2021 07:41:52 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor delete - Connection: - - keep-alive - ParameterSetName: - - -y --name --resource-group - User-Agent: - - python/3.7.8 (Windows-10-10.0.19041-SP0) msrest/0.6.19 msrest_azure/0.6.4 - azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.17.1 - 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: '{"value":[{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/43d0d8ad-25c7-4714-9337-8ba259a9fe05","principalId":"2a4a86dc-7337-4d70-a757-631ffd93628d","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-01-14T01:20:09.6404926Z","updatedOn":"2021-01-14T01:20:09.6404926Z","createdBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","updatedBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/88888888-0000-0000-0000-000000000001","type":"Microsoft.Authorization/roleAssignments","name":"88888888-0000-0000-0000-000000000001"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/43d0d8ad-25c7-4714-9337-8ba259a9fe05","principalId":"a2807a61-2ec7-408e-b8e4-78cf3d9715ef","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-01-14T01:14:22.5991979Z","updatedOn":"2021-01-14T01:14:22.5991979Z","createdBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","updatedBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2369de39-38dd-4f89-b162-bd2dcfb8e601","type":"Microsoft.Authorization/roleAssignments","name":"2369de39-38dd-4f89-b162-bd2dcfb8e601"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/43d0d8ad-25c7-4714-9337-8ba259a9fe05","principalId":"aba9e85c-2772-4540-9cff-e17797872a4f","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-01-14T01:10:53.7218039Z","updatedOn":"2021-01-14T01:10:53.7218039Z","createdBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","updatedBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/08d1b0f3-07a1-4607-a9d6-1ccd2d0e62e8","type":"Microsoft.Authorization/roleAssignments","name":"08d1b0f3-07a1-4607-a9d6-1ccd2d0e62e8"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/43d0d8ad-25c7-4714-9337-8ba259a9fe05","principalId":"bc53cdc1-5485-4cd2-b094-cba43901c268","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-01-14T01:08:00.2782104Z","updatedOn":"2021-01-14T01:08:00.2782104Z","createdBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","updatedBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/2d5454fd-9f90-442d-aa18-f5d75e0f1cdc","type":"Microsoft.Authorization/roleAssignments","name":"2d5454fd-9f90-442d-aa18-f5d75e0f1cdc"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/43d0d8ad-25c7-4714-9337-8ba259a9fe05","principalId":"f44aacb9-ad0e-446f-bef6-96b8475738a7","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-01-14T01:17:23.9998782Z","updatedOn":"2021-01-14T01:17:23.9998782Z","createdBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","updatedBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/486ab2df-6c09-41bf-9b68-a2c932e30102","type":"Microsoft.Authorization/roleAssignments","name":"486ab2df-6c09-41bf-9b68-a2c932e30102"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"2591841d-f699-4fd5-be19-1413753344ae","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-08-23T18:02:56.5650890Z","updatedOn":"2019-08-23T18:02:56.5650890Z","createdBy":"1a32802b-eb90-45f0-9b6c-b3c376eca192","updatedBy":"1a32802b-eb90-45f0-9b6c-b3c376eca192","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/17c20d04-c29d-40ef-b4ac-2e94db647775","type":"Microsoft.Authorization/roleAssignments","name":"17c20d04-c29d-40ef-b4ac-2e94db647775"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"2eb1516a-6bf1-44d5-90dc-8da5dd1e8e92","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-10-07T18:58:33.1942711Z","updatedOn":"2019-10-07T18:58:33.1942711Z","createdBy":"1a32802b-eb90-45f0-9b6c-b3c376eca192","updatedBy":"1a32802b-eb90-45f0-9b6c-b3c376eca192","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/fe93038d-6085-4cdc-b398-9629428c5c96","type":"Microsoft.Authorization/roleAssignments","name":"fe93038d-6085-4cdc-b398-9629428c5c96"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"4290ae1b-4f92-4dc9-81fe-fab805a38536","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-08-05T19:51:00.0367862Z","updatedOn":"2019-08-05T19:51:00.0367862Z","createdBy":"2b05f6b4-9725-412f-927c-c952bc8cc4e1","updatedBy":"2b05f6b4-9725-412f-927c-c952bc8cc4e1","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/8706c746-9b56-4986-a2e8-42e53ad33c97","type":"Microsoft.Authorization/roleAssignments","name":"8706c746-9b56-4986-a2e8-42e53ad33c97"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"873faebc-30a0-48a3-8fd5-a462eed8e1a8","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-10-10T00:38:33.2012757Z","updatedOn":"2020-10-10T00:38:33.2012757Z","createdBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","updatedBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/dcd13da3-5e42-488d-adb2-04e0372ed7ef","type":"Microsoft.Authorization/roleAssignments","name":"dcd13da3-5e42-488d-adb2-04e0372ed7ef"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"963441f0-847b-4f2e-b6e6-839495d00ac6","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-08-05T19:50:27.0092731Z","updatedOn":"2019-08-05T19:50:27.0092731Z","createdBy":"2b05f6b4-9725-412f-927c-c952bc8cc4e1","updatedBy":"2b05f6b4-9725-412f-927c-c952bc8cc4e1","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/df7b4e47-d7a0-4c79-a270-038a7b92fb3b","type":"Microsoft.Authorization/roleAssignments","name":"df7b4e47-d7a0-4c79-a270-038a7b92fb3b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"2591841d-f699-4fd5-be19-1413753344ae","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-08-23T18:02:52.0274298Z","updatedOn":"2019-08-23T18:02:52.0274298Z","createdBy":"1a32802b-eb90-45f0-9b6c-b3c376eca192","updatedBy":"1a32802b-eb90-45f0-9b6c-b3c376eca192","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/46973b66-58c6-4e73-8ab5-af645f65279e","type":"Microsoft.Authorization/roleAssignments","name":"46973b66-58c6-4e73-8ab5-af645f65279e"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"2eb1516a-6bf1-44d5-90dc-8da5dd1e8e92","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-10-07T18:58:20.7703200Z","updatedOn":"2019-10-07T18:58:20.7703200Z","createdBy":"1a32802b-eb90-45f0-9b6c-b3c376eca192","updatedBy":"1a32802b-eb90-45f0-9b6c-b3c376eca192","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/fc27cfc4-2999-4548-b738-0b9e6770a7ed","type":"Microsoft.Authorization/roleAssignments","name":"fc27cfc4-2999-4548-b738-0b9e6770a7ed"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"3ffc1ff6-01cb-4dbd-b5d9-d9fc557b1d04","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-15T23:05:05.5124234Z","updatedOn":"2020-05-15T23:05:05.5124234Z","createdBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","updatedBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/ea02c6f8-714b-4357-8507-b035e07228db","type":"Microsoft.Authorization/roleAssignments","name":"ea02c6f8-714b-4357-8507-b035e07228db"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"b7232118-d641-4d0f-83de-1ff906503a6b","principalType":"User","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-09-08T20:18:26.3706717Z","updatedOn":"2020-09-08T20:18:26.3706717Z","createdBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","updatedBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/225a96c7-6916-41bd-88d5-d2007e741b06","type":"Microsoft.Authorization/roleAssignments","name":"225a96c7-6916-41bd-88d5-d2007e741b06"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c","principalId":"bccfec74-288a-463c-b9a2-74d823a15316","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2020-05-20T01:46:26.0731442Z","updatedOn":"2020-05-20T01:46:26.0731442Z","createdBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","updatedBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/3ff3e6a7-54cd-40cf-9421-1c295c7d83c2","type":"Microsoft.Authorization/roleAssignments","name":"3ff3e6a7-54cd-40cf-9421-1c295c7d83c2"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d73bb868-a0df-4d4d-bd69-98a00b01fccb","principalId":"2591841d-f699-4fd5-be19-1413753344ae","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-08-23T18:03:00.8230512Z","updatedOn":"2019-08-23T18:03:00.8230512Z","createdBy":"1a32802b-eb90-45f0-9b6c-b3c376eca192","updatedBy":"1a32802b-eb90-45f0-9b6c-b3c376eca192","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/5c2a779b-cf1c-4c39-8638-3907404d0f41","type":"Microsoft.Authorization/roleAssignments","name":"5c2a779b-cf1c-4c39-8638-3907404d0f41"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d73bb868-a0df-4d4d-bd69-98a00b01fccb","principalId":"2eb1516a-6bf1-44d5-90dc-8da5dd1e8e92","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-10-07T18:58:38.2544554Z","updatedOn":"2019-10-07T18:58:38.2544554Z","createdBy":"1a32802b-eb90-45f0-9b6c-b3c376eca192","updatedBy":"1a32802b-eb90-45f0-9b6c-b3c376eca192","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/77f19c17-1084-4ee7-afb2-96c7c7ada137","type":"Microsoft.Authorization/roleAssignments","name":"77f19c17-1084-4ee7-afb2-96c7c7ada137"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd","principalId":"096a91de-3c94-4da9-8817-8b7b6e133a7c","principalType":"Group","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2019-08-23T17:50:52.3700190Z","updatedOn":"2019-08-23T17:50:52.3700190Z","createdBy":"1a32802b-eb90-45f0-9b6c-b3c376eca192","updatedBy":"1a32802b-eb90-45f0-9b6c-b3c376eca192","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/6b1df0d0-ee1a-46a4-8313-8bb299af155e","type":"Microsoft.Authorization/roleAssignments","name":"6b1df0d0-ee1a-46a4-8313-8bb299af155e"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"5c617d2b-99f8-4c90-98fe-dfe040fa33c1","principalType":"ServicePrincipal","scope":"/","condition":null,"conditionVersion":null,"createdOn":"2018-02-27T19:19:50.2663941Z","updatedOn":"2018-02-27T19:19:50.2663941Z","createdBy":null,"updatedBy":null,"delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Authorization/roleAssignments/3e883d24-b106-42ff-ad13-d7bf271b964d","type":"Microsoft.Authorization/roleAssignments","name":"3e883d24-b106-42ff-ad13-d7bf271b964d"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab","principalId":"9df19301-2fd1-42b5-ae2f-ab9a93e2b7e7","principalType":"Group","scope":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01","condition":null,"conditionVersion":null,"createdOn":"2020-10-27T22:25:15.2040326Z","updatedOn":"2020-10-27T22:25:15.2040326Z","createdBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","updatedBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01/providers/Microsoft.Authorization/roleAssignments/aa0210a1-bec4-46da-94e3-a72b096ec3ee","type":"Microsoft.Authorization/roleAssignments","name":"aa0210a1-bec4-46da-94e3-a72b096ec3ee"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/36243c78-bf99-498c-9df9-86d9f8d28608","principalId":"096a91de-3c94-4da9-8817-8b7b6e133a7c","principalType":"Group","scope":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01","condition":null,"conditionVersion":null,"createdOn":"2019-06-25T20:37:38.2640657Z","updatedOn":"2019-06-25T20:37:38.2640657Z","createdBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","updatedBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01/providers/Microsoft.Authorization/roleAssignments/3ca48e91-d1b4-42fd-ae50-4da9d0346f35","type":"Microsoft.Authorization/roleAssignments","name":"3ca48e91-d1b4-42fd-ae50-4da9d0346f35"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4d97b98b-1d4f-4787-a291-c67834d212e7","principalId":"9df19301-2fd1-42b5-ae2f-ab9a93e2b7e7","principalType":"Group","scope":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01","condition":null,"conditionVersion":null,"createdOn":"2020-10-27T22:25:44.5009627Z","updatedOn":"2020-10-27T22:25:44.5009627Z","createdBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","updatedBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01/providers/Microsoft.Authorization/roleAssignments/b07bf776-3536-4fa7-bdbc-031bc5468a65","type":"Microsoft.Authorization/roleAssignments","name":"b07bf776-3536-4fa7-bdbc-031bc5468a65"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c","principalId":"096a91de-3c94-4da9-8817-8b7b6e133a7c","principalType":"Group","scope":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01","condition":null,"conditionVersion":null,"createdOn":"2019-09-30T21:25:08.7177818Z","updatedOn":"2019-09-30T21:25:08.7177818Z","createdBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","updatedBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01/providers/Microsoft.Authorization/roleAssignments/03ebf26e-4776-4f47-9ab3-bf67dc60b7fe","type":"Microsoft.Authorization/roleAssignments","name":"03ebf26e-4776-4f47-9ab3-bf67dc60b7fe"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c","principalId":"2b05f6b4-9725-412f-927c-c952bc8cc4e1","principalType":"User","scope":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01","condition":null,"conditionVersion":null,"createdOn":"2019-06-25T20:37:17.0532301Z","updatedOn":"2019-06-25T20:37:17.0532301Z","createdBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","updatedBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01/providers/Microsoft.Authorization/roleAssignments/aeab6551-deb3-4fce-bf18-453dfe399baa","type":"Microsoft.Authorization/roleAssignments","name":"aeab6551-deb3-4fce-bf18-453dfe399baa"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d58bcaf-24a5-4b20-bdb6-eed9f69fbe4c","principalId":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","principalType":"User","scope":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01","condition":null,"conditionVersion":null,"createdOn":"2019-06-25T20:37:14.6152875Z","updatedOn":"2019-06-25T20:37:14.6152875Z","createdBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","updatedBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01/providers/Microsoft.Authorization/roleAssignments/83cfc916-b983-4647-87a1-2d0b8415960b","type":"Microsoft.Authorization/roleAssignments","name":"83cfc916-b983-4647-87a1-2d0b8415960b"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/73c42c96-874c-492b-b04d-ab87d138a893","principalId":"a9593c52-5186-446d-82c7-497b6f92f978","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01","condition":null,"conditionVersion":null,"createdOn":"2020-02-14T17:52:21.8980632Z","updatedOn":"2020-02-14T17:52:21.8980632Z","createdBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","updatedBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01/providers/Microsoft.Authorization/roleAssignments/98ccb65a-a63b-4f80-a9a2-8387b39e2f1c","type":"Microsoft.Authorization/roleAssignments","name":"98ccb65a-a63b-4f80-a9a2-8387b39e2f1c"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"963441f0-847b-4f2e-b6e6-839495d00ac6","principalType":"Group","scope":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01","condition":null,"conditionVersion":null,"createdOn":"2019-12-10T21:57:32.7436058Z","updatedOn":"2019-12-10T21:57:32.7436058Z","createdBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","updatedBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01/providers/Microsoft.Authorization/roleAssignments/31d63660-9bf5-48d0-9aca-29c07bab9775","type":"Microsoft.Authorization/roleAssignments","name":"31d63660-9bf5-48d0-9aca-29c07bab9775"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"b463be15-796c-4422-9419-5f40bb311d96","principalType":"Group","scope":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01","condition":null,"conditionVersion":null,"createdOn":"2020-01-29T19:26:06.6090466Z","updatedOn":"2020-01-29T19:26:06.6090466Z","createdBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","updatedBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01/providers/Microsoft.Authorization/roleAssignments/b7158270-ac19-4571-9811-c2cd13865dad","type":"Microsoft.Authorization/roleAssignments","name":"b7158270-ac19-4571-9811-c2cd13865dad"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c","principalId":"4da3f756-3447-485b-922b-2092f1c91329","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01","condition":null,"conditionVersion":null,"createdOn":"2020-08-05T19:48:20.9361557Z","updatedOn":"2020-08-05T19:48:20.9361557Z","createdBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","updatedBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01/providers/Microsoft.Authorization/roleAssignments/2b09e484-8f2e-440a-a93b-e797305edaa6","type":"Microsoft.Authorization/roleAssignments","name":"2b09e484-8f2e-440a-a93b-e797305edaa6"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c","principalId":"6656abd0-c1a3-4778-a525-789160dd3224","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01","condition":null,"conditionVersion":null,"createdOn":"2020-10-12T22:53:45.0369351Z","updatedOn":"2020-10-12T22:53:45.0369351Z","createdBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","updatedBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01/providers/Microsoft.Authorization/roleAssignments/a4e11384-9024-494e-ae04-4ad66a25dc57","type":"Microsoft.Authorization/roleAssignments","name":"a4e11384-9024-494e-ae04-4ad66a25dc57"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c","principalId":"9df19301-2fd1-42b5-ae2f-ab9a93e2b7e7","principalType":"Group","scope":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01","condition":null,"conditionVersion":null,"createdOn":"2020-10-27T22:24:56.7114210Z","updatedOn":"2020-10-27T22:24:56.7114210Z","createdBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","updatedBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01/providers/Microsoft.Authorization/roleAssignments/70edd1d2-bd7b-4982-979d-091109281172","type":"Microsoft.Authorization/roleAssignments","name":"70edd1d2-bd7b-4982-979d-091109281172"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd","principalId":"096a91de-3c94-4da9-8817-8b7b6e133a7c","principalType":"Group","scope":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01","condition":null,"conditionVersion":null,"createdOn":"2020-01-29T19:26:52.3671031Z","updatedOn":"2020-01-29T19:26:52.3671031Z","createdBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","updatedBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01/providers/Microsoft.Authorization/roleAssignments/0f93ce72-7e48-4e7a-94d7-42580cf6dd44","type":"Microsoft.Authorization/roleAssignments","name":"0f93ce72-7e48-4e7a-94d7-42580cf6dd44"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fb1c8493-542b-48eb-b624-b4c8fea62acd","principalId":"89aea02f-37a8-4518-84c8-20fb4d47fdc0","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01","condition":null,"conditionVersion":null,"createdOn":"2020-01-23T17:13:28.8046408Z","updatedOn":"2020-01-23T17:13:28.8046408Z","createdBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","updatedBy":"7d9ed04d-654a-46d9-8306-bc2651cc6b9f","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/DDFunASCIndiv01/providers/Microsoft.Authorization/roleAssignments/78da6123-01d3-4449-9f1a-9ee46c5c16c7","type":"Microsoft.Authorization/roleAssignments","name":"78da6123-01d3-4449-9f1a-9ee46c5c16c7"},{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7","principalId":"ce2366a6-64d7-441b-939c-c9d23f91cccd","principalType":"ServicePrincipal","scope":"/providers/Microsoft.Management/managementGroups/72f988bf-86f1-41af-91ab-2d7cd011db47","condition":null,"conditionVersion":null,"createdOn":"2020-03-12T20:43:06.5941189Z","updatedOn":"2020-03-12T20:43:06.5941189Z","createdBy":"606f48c8-d219-4875-991d-ae6befaf0756","updatedBy":"606f48c8-d219-4875-991d-ae6befaf0756","delegatedManagedIdentityResourceId":null,"description":null},"id":"/providers/Microsoft.Management/managementGroups/72f988bf-86f1-41af-91ab-2d7cd011db47/providers/Microsoft.Authorization/roleAssignments/ad9e2cd7-0ff7-4931-9b17-656c8f17934b","type":"Microsoft.Authorization/roleAssignments","name":"ad9e2cd7-0ff7-4931-9b17-656c8f17934b"}]}' - headers: - cache-control: - - no-cache - content-length: - - '29276' - content-type: - - application/json; charset=utf-8 - date: - - Thu, 14 Jan 2021 01:21:31 GMT - expires: - - '-1' - pragma: - - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor delete - Connection: - - keep-alive - Cookie: - - x-ms-gateway-slice=Production - ParameterSetName: - - -y --name --resource-group - User-Agent: - - python/3.7.8 (Windows-10-10.0.19041-SP0) msrest/0.6.19 msrest_azure/0.6.4 - azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.17.1 - accept-language: - - en-US - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions?$filter=roleName%20eq%20%27Monitoring%20Reader%27&api-version=2018-01-01-preview - response: - body: - string: '{"value":[{"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"}]}' - headers: - cache-control: - - no-cache - content-length: - - '683' - content-type: - - application/json; charset=utf-8 - date: - - Thu, 14 Jan 2021 01:21:31 GMT - expires: - - '-1' - pragma: - - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor delete - Connection: - - keep-alive - Cookie: - - x-ms-gateway-slice=Production - ParameterSetName: - - -y --name --resource-group - User-Agent: - - python/3.7.8 (Windows-10-10.0.19041-SP0) msrest/0.6.19 msrest_azure/0.6.4 - azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.17.1 - accept-language: - - en-US - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions?api-version=2018-01-01-preview - response: - body: - string: "{\"value\":[{\"properties\":{\"roleName\":\"Avere Cluster Create\",\"type\":\"CustomRole\",\"description\":\"Avere - cluster create role used by the Avere controller to create a vFXT cluster.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Authorization/roleAssignments/*\",\"Microsoft.Authorization/roleDefinitions/*\",\"Microsoft.Compute/*/read\",\"Microsoft.Compute/availabilitySets/*\",\"Microsoft.Compute/virtualMachines/*\",\"Microsoft.Network/*/read\",\"Microsoft.Network/networkInterfaces/*\",\"Microsoft.Network/virtualNetworks/subnets/join/action\",\"Microsoft.Network/virtualNetworks/subnets/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/subscriptions/resourceGroups/resources/read\",\"Microsoft.Storage/*/read\",\"Microsoft.Storage/storageAccounts/listKeys/action\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-11-29T18:46:55.0492387Z\",\"updatedOn\":\"2018-11-29T18:46:55.0492387Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a7b1b19a-0e83-4fe5-935c-faaefbfd18c3\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a7b1b19a-0e83-4fe5-935c-faaefbfd18c3\"},{\"properties\":{\"roleName\":\"Avere - Cluster Runtime Operator\",\"type\":\"CustomRole\",\"description\":\"Avere - cluster runtime role used by Avere clusters running in subscriptions, for - the purpose of failing over IP addresses, accessing BLOB storage, etc\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Compute/virtualMachines/read\",\"Microsoft.Network/networkInterfaces/read\",\"Microsoft.Network/networkInterfaces/write\",\"Microsoft.Network/virtualNetworks/subnets/read\",\"Microsoft.Network/virtualNetworks/subnets/join/action\",\"Microsoft.Network/networkSecurityGroups/join/action\",\"Microsoft.Network/routeTables/read\",\"Microsoft.Network/routeTables/routes/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/delete\",\"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/write\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\",\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"],\"notDataActions\":[]}],\"createdOn\":\"2018-08-26T00:41:26.2170858Z\",\"updatedOn\":\"2018-08-26T00:41:26.2170858Z\",\"createdBy\":\"dda50086-5e3d-4a4b-b8bc-f54771104d89\",\"updatedBy\":\"dda50086-5e3d-4a4b-b8bc-f54771104d89\"},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e078ab98-ef3a-4c9a-aba7-12f5172b45d0\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e078ab98-ef3a-4c9a-aba7-12f5172b45d0\"},{\"properties\":{\"roleName\":\"Azure - Service Deploy Release Management Contributor\",\"type\":\"CustomRole\",\"description\":\"Contributor - role for services deploying through Azure Service Deploy.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"*\"],\"notActions\":[\"Microsoft.Authorization/*/Delete\",\"Microsoft.Authorization/*/Write\"],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2016-02-04T02:26:31.5413362Z\",\"updatedOn\":\"2018-01-08T20:20:16.3660174Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/21d96096-b162-414a-8302-d8354f9d91b2\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"21d96096-b162-414a-8302-d8354f9d91b2\"},{\"properties\":{\"roleName\":\"CAL-Custom-Role\",\"type\":\"CustomRole\",\"description\":\"Lets - SAP Cloud Appliance Library application manage Network and Compute services, - manage Resource Groups and Management locks.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/locks/*\",\"Microsoft.Authorization/roleDefinitions/*\",\"Microsoft.Authorization/roleAssignments/*\",\"Microsoft.Compute/*\",\"Microsoft.Network/*\",\"Microsoft.Resources/*\",\"Microsoft.Storage/*\",\"Microsoft.ContainerService/*\",\"Microsoft.ContainerRegistry/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-05-14T19:30:51.0664585Z\",\"updatedOn\":\"2019-02-19T19:11:57.5963229Z\",\"createdBy\":\"dda50086-5e3d-4a4b-b8bc-f54771104d89\",\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7b266cd7-0bba-4ae2-8423-90ede5e1e898\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7b266cd7-0bba-4ae2-8423-90ede5e1e898\"},{\"properties\":{\"roleName\":\"Dsms - Role (deprecated)\",\"type\":\"CustomRole\",\"description\":\"Custom role - used by Dsms to perform operations. Can list and regnerate storage account - keys.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\"Microsoft.ClassicStorage/storageAccounts/regenerateKey/action\",\"Microsoft.Storage/storageAccounts/listkeys/action\",\"Microsoft.Storage/storageAccounts/regeneratekey/action\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-05-17T18:02:11.1225951Z\",\"updatedOn\":\"2018-01-13T00:21:52.7211696Z\",\"createdBy\":\"ca5f3715-e7dd-427b-b2db-45b6a4a2df87\",\"updatedBy\":\"ca5f3715-e7dd-427b-b2db-45b6a4a2df87\"},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b91f4c0b-46e3-47bb-a242-eecfe23b3b5b\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b91f4c0b-46e3-47bb-a242-eecfe23b3b5b\"},{\"properties\":{\"roleName\":\"Dsms - Role (do not use)\",\"type\":\"CustomRole\",\"description\":\"Custom role - used by Dsms to perform operations. Can list and regnerate storage account - keys.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ClassicStorage/storageAccounts/listKeys/action\",\"Microsoft.ClassicStorage/storageAccounts/regenerateKey/action\",\"Microsoft.Storage/storageAccounts/listkeys/action\",\"Microsoft.Storage/storageAccounts/regeneratekey/action\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-02-01T07:56:12.5880222Z\",\"updatedOn\":\"2018-08-09T17:53:48.5432297Z\",\"createdBy\":\"becb4b6b-fe16-413b-a5c3-90355e0b2982\",\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7aff565e-6c55-448d-83db-ccf482c6da2f\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7aff565e-6c55-448d-83db-ccf482c6da2f\"},{\"properties\":{\"roleName\":\"ExpressRoute - Administrator\",\"type\":\"CustomRole\",\"description\":\"Can create, delete - and manage ExpressRoutes\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/locks/*\",\"Microsoft.Authorization/policyAssignments/*\",\"Microsoft.Authorization/policyDefinitions/*\",\"Microsoft.Authorization/roleAssignments/*\",\"Microsoft.ClassicNetwork/*\",\"Microsoft.EventGrid/*\",\"Microsoft.Insights/*\",\"Microsoft.Network/*\",\"Microsoft.Resources/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-08-31T03:51:32.2843055Z\",\"updatedOn\":\"2019-03-20T22:55:18.8222085Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a48d7896-14b4-4889-afef-fbb65a96e5a2\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a48d7896-14b4-4889-afef-fbb65a96e5a2\"},{\"properties\":{\"roleName\":\"GenevaWarmPathResourceContributor\",\"type\":\"CustomRole\",\"description\":\"Can - manage service bus and storage accounts.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.EventHub/namespaces/*\",\"Microsoft.Resources/subscriptions/resourceGroups/*\",\"Microsoft.ServiceBus/namespaces/*\",\"Microsoft.Storage/storageAccounts/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-03-14T22:30:10.1999436Z\",\"updatedOn\":\"2017-03-14T22:30:10.1999436Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9f15f5f5-77bd-413a-aa88-4b9c68b1e7bc\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"9f15f5f5-77bd-413a-aa88-4b9c68b1e7bc\"},{\"properties\":{\"roleName\":\"masterreader\",\"type\":\"CustomRole\",\"description\":\"Lets - you view everything, but not make any changes.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"*/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-11-14T23:38:05.3353858Z\",\"updatedOn\":\"2017-11-14T23:38:05.3353858Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a48d7796-14b4-4889-afef-fbb65a93e5a2\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a48d7796-14b4-4889-afef-fbb65a93e5a2\"},{\"properties\":{\"roleName\":\"Microsoft - OneAsset Reader\",\"type\":\"CustomRole\",\"description\":\"This role is for - Microsoft OneAsset team (CSEO) to track internal security compliance and resource - utilization.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Compute/virtualMachines/*/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-03-27T23:51:08.6333052Z\",\"updatedOn\":\"2019-04-02T20:35:43.3396263Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fd1bb084-1503-4bd2-99c0-630220046786\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"fd1bb084-1503-4bd2-99c0-630220046786\"},{\"properties\":{\"roleName\":\"Office - DevOps\",\"type\":\"CustomRole\",\"description\":\"Custom access for developers - to operations but not secrets.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Compute/virtualMachineScaleSets/restart/action\",\"Microsoft.Compute/virtualMachineScaleSets/virtualMachines/restart/action\",\"Microsoft.Sql/servers/databases/replicationLinks/delete\",\"Microsoft.Sql/servers/databases/replicationLinks/failover/action\",\"Microsoft.Sql/servers/databases/replicationLinks/forceFailoverAllowDataLoss/action\",\"Microsoft.Sql/servers/databases/replicationLinks/operationResults/read\",\"Microsoft.Sql/servers/databases/replicationLinks/read\",\"Microsoft.Sql/servers/databases/replicationLinks/unlink/action\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2016-10-07T08:11:46.1639398Z\",\"updatedOn\":\"2017-03-16T18:43:08.3234306Z\",\"createdBy\":\"25aea6be-b605-4347-a92d-33e178e412ec\",\"updatedBy\":\"25aea6be-b605-4347-a92d-33e178e412ec\"},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7fd64851-3279-459b-b614-e2b2ba760f5b\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7fd64851-3279-459b-b614-e2b2ba760f5b\"},{\"properties\":{\"roleName\":\"GenevaWarmPathStorageBlobContributor\",\"type\":\"CustomRole\",\"description\":\"Geneva - Warm Path Storage Blob Contributor\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/delete\",\"Microsoft.Storage/storageAccounts/blobServices/containers/lease/action\",\"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/write\",\"Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/lock/action\",\"Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write\",\"Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/extend/action\",\"Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-12-06T22:46:27.1365630Z\",\"updatedOn\":\"2019-12-06T22:46:27.1365630Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a16c43ca-2d67-4dcd-9ded-6412f5edc51a\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a16c43ca-2d67-4dcd-9ded-6412f5edc51a\"},{\"properties\":{\"roleName\":\"AcrPush\",\"type\":\"BuiltInRole\",\"description\":\"acr - push\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ContainerRegistry/registries/pull/read\",\"Microsoft.ContainerRegistry/registries/push/write\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-10-29T17:52:32.5201177Z\",\"updatedOn\":\"2018-11-13T23:26:19.9749249Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8311e382-0749-4cb8-b61a-304f252e45ec\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8311e382-0749-4cb8-b61a-304f252e45ec\"},{\"properties\":{\"roleName\":\"API - Management Service Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Can - manage service and the APIs\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ApiManagement/service/*\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8650193Z\",\"updatedOn\":\"2019-02-05T21:24:17.7502607Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/312a565d-c81f-4fd8-895a-4e21e48d571c\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"312a565d-c81f-4fd8-895a-4e21e48d571c\"},{\"properties\":{\"roleName\":\"AcrPull\",\"type\":\"BuiltInRole\",\"description\":\"acr - pull\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ContainerRegistry/registries/pull/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-10-22T19:01:56.8227182Z\",\"updatedOn\":\"2018-11-13T23:22:03.2302457Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7f951dda-4ed3-4680-a7ca-43fe172d538d\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7f951dda-4ed3-4680-a7ca-43fe172d538d\"},{\"properties\":{\"roleName\":\"AcrImageSigner\",\"type\":\"BuiltInRole\",\"description\":\"acr - image signer\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ContainerRegistry/registries/sign/write\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-03-15T23:23:08.4038322Z\",\"updatedOn\":\"2018-10-29T19:06:24.9004422Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/6cef56e8-d556-48e5-a04f-b8e64114680f\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"6cef56e8-d556-48e5-a04f-b8e64114680f\"},{\"properties\":{\"roleName\":\"AcrDelete\",\"type\":\"BuiltInRole\",\"description\":\"acr - delete\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ContainerRegistry/registries/artifacts/delete\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-03-11T20:19:31.6682804Z\",\"updatedOn\":\"2019-03-11T20:24:38.9845104Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c2f4ef07-c644-48eb-af81-4b1b4947fb11\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c2f4ef07-c644-48eb-af81-4b1b4947fb11\"},{\"properties\":{\"roleName\":\"AcrQuarantineReader\",\"type\":\"BuiltInRole\",\"description\":\"acr - quarantine data reader\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ContainerRegistry/registries/quarantine/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-03-16T00:27:39.9596835Z\",\"updatedOn\":\"2019-10-22T00:12:39.7020930Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/cdda3590-29a3-44f6-95f2-9f980659eb04\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"cdda3590-29a3-44f6-95f2-9f980659eb04\"},{\"properties\":{\"roleName\":\"AcrQuarantineWriter\",\"type\":\"BuiltInRole\",\"description\":\"acr - quarantine data writer\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ContainerRegistry/registries/quarantine/read\",\"Microsoft.ContainerRegistry/registries/quarantine/write\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2018-03-16T00:26:37.5871820Z\",\"updatedOn\":\"2019-10-22T00:10:29.8202164Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c8d4ff99-41c3-41a8-9f60-21dfdad59608\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c8d4ff99-41c3-41a8-9f60-21dfdad59608\"},{\"properties\":{\"roleName\":\"API - Management Service Operator Role\",\"type\":\"BuiltInRole\",\"description\":\"Can - manage service but not the APIs\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ApiManagement/service/*/read\",\"Microsoft.ApiManagement/service/backup/action\",\"Microsoft.ApiManagement/service/delete\",\"Microsoft.ApiManagement/service/managedeployments/action\",\"Microsoft.ApiManagement/service/read\",\"Microsoft.ApiManagement/service/restore/action\",\"Microsoft.ApiManagement/service/updatecertificate/action\",\"Microsoft.ApiManagement/service/updatehostname/action\",\"Microsoft.ApiManagement/service/write\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[\"Microsoft.ApiManagement/service/users/keys/read\"],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2016-11-09T00:03:42.1194019Z\",\"updatedOn\":\"2016-11-18T23:56:25.4682649Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/e022efe7-f5ba-4159-bbe4-b44f577e9b61\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"e022efe7-f5ba-4159-bbe4-b44f577e9b61\"},{\"properties\":{\"roleName\":\"API - Management Service Reader Role\",\"type\":\"BuiltInRole\",\"description\":\"Read-only - access to service and APIs\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ApiManagement/service/*/read\",\"Microsoft.ApiManagement/service/read\",\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[\"Microsoft.ApiManagement/service/users/keys/read\"],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2016-11-09T00:26:45.1540473Z\",\"updatedOn\":\"2017-01-23T23:10:34.8876776Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/71522526-b88f-4d52-b57f-d31fc3546d0d\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"71522526-b88f-4d52-b57f-d31fc3546d0d\"},{\"properties\":{\"roleName\":\"Application - Insights Component Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Can - manage Application Insights components\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/metricAlerts/*\",\"Microsoft.Insights/components/*\",\"Microsoft.Insights/webtests/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2020-02-12T12:45:46.9200472Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ae349356-3a1b-4a5e-921d-050484c6347e\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ae349356-3a1b-4a5e-921d-050484c6347e\"},{\"properties\":{\"roleName\":\"Application - Insights Snapshot Debugger\",\"type\":\"BuiltInRole\",\"description\":\"Gives - user permission to use Application Insights Snapshot Debugger features\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/components/*/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-04-19T21:25:12.3728747Z\",\"updatedOn\":\"2017-04-19T23:34:59.9511581Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/08954f03-6346-4c2e-81c0-ec3a5cfae23b\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"08954f03-6346-4c2e-81c0-ec3a5cfae23b\"},{\"properties\":{\"roleName\":\"Attestation - Reader\",\"type\":\"BuiltInRole\",\"description\":\"Can read the attestation - provider properties\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Attestation/attestationProviders/attestation/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-03-25T19:42:59.1576710Z\",\"updatedOn\":\"2019-05-10T17:52:38.9036953Z\",\"createdBy\":null,\"updatedBy\":\"SYSTEM\"},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fd1bd22b-8476-40bc-a0bc-69b95687b9f3\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"fd1bd22b-8476-40bc-a0bc-69b95687b9f3\"},{\"properties\":{\"roleName\":\"Automation - Job Operator\",\"type\":\"BuiltInRole\",\"description\":\"Create and Manage - Jobs using Automation Runbooks.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Automation/automationAccounts/hybridRunbookWorkerGroups/read\",\"Microsoft.Automation/automationAccounts/jobs/read\",\"Microsoft.Automation/automationAccounts/jobs/resume/action\",\"Microsoft.Automation/automationAccounts/jobs/stop/action\",\"Microsoft.Automation/automationAccounts/jobs/streams/read\",\"Microsoft.Automation/automationAccounts/jobs/suspend/action\",\"Microsoft.Automation/automationAccounts/jobs/write\",\"Microsoft.Automation/automationAccounts/jobs/output/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-04-19T20:52:41.0020018Z\",\"updatedOn\":\"2018-08-14T22:08:48.1147327Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4fe576fe-1146-4730-92eb-48519fa6bf9f\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4fe576fe-1146-4730-92eb-48519fa6bf9f\"},{\"properties\":{\"roleName\":\"Automation - Runbook Operator\",\"type\":\"BuiltInRole\",\"description\":\"Read Runbook - properties - to be able to create Jobs of the runbook.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Automation/automationAccounts/runbooks/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-04-19T20:47:49.5640674Z\",\"updatedOn\":\"2017-04-25T01:00:45.6444999Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5fb5aef8-1081-4b8e-bb16-9d5d0385bab5\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5fb5aef8-1081-4b8e-bb16-9d5d0385bab5\"},{\"properties\":{\"roleName\":\"Automation - Operator\",\"type\":\"BuiltInRole\",\"description\":\"Automation Operators - are able to start, stop, suspend, and resume jobs\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Automation/automationAccounts/hybridRunbookWorkerGroups/read\",\"Microsoft.Automation/automationAccounts/jobs/read\",\"Microsoft.Automation/automationAccounts/jobs/resume/action\",\"Microsoft.Automation/automationAccounts/jobs/stop/action\",\"Microsoft.Automation/automationAccounts/jobs/streams/read\",\"Microsoft.Automation/automationAccounts/jobs/suspend/action\",\"Microsoft.Automation/automationAccounts/jobs/write\",\"Microsoft.Automation/automationAccounts/jobSchedules/read\",\"Microsoft.Automation/automationAccounts/jobSchedules/write\",\"Microsoft.Automation/automationAccounts/linkedWorkspace/read\",\"Microsoft.Automation/automationAccounts/read\",\"Microsoft.Automation/automationAccounts/runbooks/read\",\"Microsoft.Automation/automationAccounts/schedules/read\",\"Microsoft.Automation/automationAccounts/schedules/write\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Automation/automationAccounts/jobs/output/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-08-18T01:05:03.3916130Z\",\"updatedOn\":\"2018-05-10T20:12:39.6978200Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d3881f73-407a-4167-8283-e981cbba0404\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"d3881f73-407a-4167-8283-e981cbba0404\"},{\"properties\":{\"roleName\":\"Avere - Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Can create and manage - an Avere vFXT cluster.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Compute/*/read\",\"Microsoft.Compute/availabilitySets/*\",\"Microsoft.Compute/proximityPlacementGroups/*\",\"Microsoft.Compute/virtualMachines/*\",\"Microsoft.Compute/disks/*\",\"Microsoft.Network/*/read\",\"Microsoft.Network/networkInterfaces/*\",\"Microsoft.Network/virtualNetworks/read\",\"Microsoft.Network/virtualNetworks/subnets/read\",\"Microsoft.Network/virtualNetworks/subnets/join/action\",\"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\",\"Microsoft.Network/networkSecurityGroups/join/action\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/*/read\",\"Microsoft.Storage/storageAccounts/*\",\"Microsoft.Support/*\",\"Microsoft.Resources/subscriptions/resourceGroups/resources/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\",\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"],\"notDataActions\":[]}],\"createdOn\":\"2019-03-18T20:00:58.9207889Z\",\"updatedOn\":\"2020-05-27T06:48:54.4896867Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4f8fab4f-1852-4a58-a46a-8eaf358af14a\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4f8fab4f-1852-4a58-a46a-8eaf358af14a\"},{\"properties\":{\"roleName\":\"Avere - Operator\",\"type\":\"BuiltInRole\",\"description\":\"Used by the Avere vFXT - cluster to manage the cluster\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Compute/virtualMachines/read\",\"Microsoft.Network/networkInterfaces/read\",\"Microsoft.Network/networkInterfaces/write\",\"Microsoft.Network/virtualNetworks/read\",\"Microsoft.Network/virtualNetworks/subnets/read\",\"Microsoft.Network/virtualNetworks/subnets/join/action\",\"Microsoft.Network/networkSecurityGroups/join/action\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/delete\",\"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/write\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\",\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"],\"notDataActions\":[]}],\"createdOn\":\"2019-03-18T20:02:38.3399857Z\",\"updatedOn\":\"2019-03-29T00:26:37.9205875Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c025889f-8102-4ebf-b32c-fc0c6f0c6bd9\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c025889f-8102-4ebf-b32c-fc0c6f0c6bd9\"},{\"properties\":{\"roleName\":\"Azure - Kubernetes Service Cluster Admin Role\",\"type\":\"BuiltInRole\",\"description\":\"List - cluster admin credential action.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ContainerService/managedClusters/listClusterAdminCredential/action\",\"Microsoft.ContainerService/managedClusters/accessProfiles/listCredential/action\",\"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/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/restore/action\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/revokeInstantItemRecovery/action\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/write\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/refreshContainers/action\",\"Microsoft.RecoveryServices/Vaults/backupJobs/*\",\"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\",\"Microsoft.RecoveryServices/Vaults/backupOperationResults/*\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/operationResults/read\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectableItems/*\",\"Microsoft.RecoveryServices/Vaults/backupProtectedItems/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/read\",\"Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\"Microsoft.RecoveryServices/Vaults/certificates/write\",\"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\"Microsoft.RecoveryServices/Vaults/extendedInformation/write\",\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\",\"Microsoft.RecoveryServices/Vaults/read\",\"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\",\"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\"Microsoft.RecoveryServices/Vaults/registeredIdentities/write\",\"Microsoft.RecoveryServices/Vaults/usages/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Storage/storageAccounts/read\",\"Microsoft.RecoveryServices/Vaults/backupstorageconfig/*\",\"Microsoft.RecoveryServices/Vaults/backupValidateOperation/action\",\"Microsoft.RecoveryServices/Vaults/backupOperations/read\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/operations/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/write\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/inquire/action\",\"Microsoft.RecoveryServices/Vaults/backupEngines/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/write\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectableContainers/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/items/read\",\"Microsoft.RecoveryServices/locations/backupStatus/action\",\"Microsoft.RecoveryServices/locations/backupPreValidateProtection/action\",\"Microsoft.RecoveryServices/locations/backupValidateFeatures/action\",\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\"Microsoft.RecoveryServices/operations/read\",\"Microsoft.RecoveryServices/locations/operationStatus/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-01-03T13:21:11.8947640Z\",\"updatedOn\":\"2019-12-17T11:02:43.9998686Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00c29273-979b-4161-815c-10b084fb9324\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"00c29273-979b-4161-815c-10b084fb9324\"},{\"properties\":{\"roleName\":\"Backup - Reader\",\"type\":\"BuiltInRole\",\"description\":\"Can view backup services, - but can't make changes\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.RecoveryServices/locations/allocatedStamp/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/operationResults/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/operationResults/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationResults/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/operationsStatus/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/recoveryPoints/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/read\",\"Microsoft.RecoveryServices/Vaults/backupJobs/operationResults/read\",\"Microsoft.RecoveryServices/Vaults/backupJobs/read\",\"Microsoft.RecoveryServices/Vaults/backupJobsExport/action\",\"Microsoft.RecoveryServices/Vaults/backupOperationResults/read\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/operationResults/read\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectedItems/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectionContainers/read\",\"Microsoft.RecoveryServices/Vaults/backupUsageSummaries/read\",\"Microsoft.RecoveryServices/Vaults/extendedInformation/read\",\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/read\",\"Microsoft.RecoveryServices/Vaults/read\",\"Microsoft.RecoveryServices/Vaults/registeredIdentities/operationResults/read\",\"Microsoft.RecoveryServices/Vaults/registeredIdentities/read\",\"Microsoft.RecoveryServices/Vaults/backupstorageconfig/read\",\"Microsoft.RecoveryServices/Vaults/backupconfig/read\",\"Microsoft.RecoveryServices/Vaults/backupOperations/read\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/operations/read\",\"Microsoft.RecoveryServices/Vaults/backupEngines/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/items/read\",\"Microsoft.RecoveryServices/locations/backupStatus/action\",\"Microsoft.RecoveryServices/Vaults/monitoringConfigurations/*\",\"Microsoft.RecoveryServices/Vaults/monitoringAlerts/write\",\"Microsoft.RecoveryServices/operations/read\",\"Microsoft.RecoveryServices/locations/operationStatus/read\",\"Microsoft.RecoveryServices/Vaults/backupProtectionIntents/read\",\"Microsoft.RecoveryServices/Vaults/usages/read\",\"Microsoft.RecoveryServices/locations/backupValidateFeatures/action\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-01-03T13:18:41.3893065Z\",\"updatedOn\":\"2020-03-04T12:12:04.3213110Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a795c7a0-d4a2-40c1-ae25-d81f01202912\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a795c7a0-d4a2-40c1-ae25-d81f01202912\"},{\"properties\":{\"roleName\":\"Blockchain - Member Node Access (Preview)\",\"type\":\"BuiltInRole\",\"description\":\"Allows - for access to Blockchain Member nodes\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Blockchain/blockchainMembers/transactionNodes/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Blockchain/blockchainMembers/transactionNodes/connect/action\"],\"notDataActions\":[]}],\"createdOn\":\"2018-12-21T10:33:01.9604839Z\",\"updatedOn\":\"2018-12-21T10:33:58.0042162Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/31a002a1-acaf-453e-8a5b-297c9ca1ea24\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"31a002a1-acaf-453e-8a5b-297c9ca1ea24\"},{\"properties\":{\"roleName\":\"BizTalk - Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Lets you manage BizTalk - services, but not access to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.BizTalkServices/BizTalk/*\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-02-05T20:42:18.8978210Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5e3c6656-6cfa-4708-81fe-0de47ac73342\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5e3c6656-6cfa-4708-81fe-0de47ac73342\"},{\"properties\":{\"roleName\":\"CDN - Endpoint Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Can manage - CDN endpoints, but can\u2019t grant access to other users.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Cdn/edgenodes/read\",\"Microsoft.Cdn/operationresults/*\",\"Microsoft.Cdn/profiles/endpoints/*\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2016-01-23T02:48:46.4996252Z\",\"updatedOn\":\"2016-05-31T23:13:52.6231539Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/426e0c7f-0c7e-4658-b36f-ff54d6c29b45\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"426e0c7f-0c7e-4658-b36f-ff54d6c29b45\"},{\"properties\":{\"roleName\":\"CDN - Endpoint Reader\",\"type\":\"BuiltInRole\",\"description\":\"Can view CDN - endpoints, but can\u2019t make changes.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Cdn/edgenodes/read\",\"Microsoft.Cdn/operationresults/*\",\"Microsoft.Cdn/profiles/endpoints/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2016-01-23T02:48:46.4996252Z\",\"updatedOn\":\"2016-05-31T23:13:53.1585846Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/871e35f6-b5c1-49cc-a043-bde969a0f2cd\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"871e35f6-b5c1-49cc-a043-bde969a0f2cd\"},{\"properties\":{\"roleName\":\"CDN - Profile Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Can manage - CDN profiles and their endpoints, but can\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/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/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-06-16T18:44:40.4607572Z\",\"updatedOn\":\"2020-12-10T11:34:15.2596059Z\",\"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/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\":\"2020-10-19T17:59:33.6870200Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/6d8ee4ec-f05a-4a1d-8b00-a9b17e38b437\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"6d8ee4ec-f05a-4a1d-8b00-a9b17e38b437\"},{\"properties\":{\"roleName\":\"Storage - Account Key Operator Service Role\",\"type\":\"BuiltInRole\",\"description\":\"Storage - Account Key Operators are allowed to list and regenerate keys on Storage Accounts\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/listkeys/action\",\"Microsoft.Storage/storageAccounts/regeneratekey/action\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-04-13T18:26:11.5770570Z\",\"updatedOn\":\"2017-04-13T20:57:14.5990198Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/81a9662b-bebf-436f-a333-f67b29880f12\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"81a9662b-bebf-436f-a333-f67b29880f12\"},{\"properties\":{\"roleName\":\"Storage - Blob Data Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Allows - for read, write and delete access to Azure Storage blob containers and data\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/delete\",\"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/write\",\"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/delete\",\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\",\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/move/action\",\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write\"],\"notDataActions\":[]}],\"createdOn\":\"2017-12-21T00:01:24.7972312Z\",\"updatedOn\":\"2020-03-30T22:49:07.8669420Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/ba92f5b4-2d11-453d-a403-e96b0029c9fe\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"ba92f5b4-2d11-453d-a403-e96b0029c9fe\"},{\"properties\":{\"roleName\":\"Storage - Blob Data Owner\",\"type\":\"BuiltInRole\",\"description\":\"Allows for full - access to Azure Storage blob containers and data, including assigning POSIX - access control.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/*\",\"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/*\"],\"notDataActions\":[]}],\"createdOn\":\"2018-12-04T07:02:58.2775257Z\",\"updatedOn\":\"2019-07-16T21:30:33.7002563Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b7e6dc6d-f1e8-4753-8033-0f276bb0955b\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b7e6dc6d-f1e8-4753-8033-0f276bb0955b\"},{\"properties\":{\"roleName\":\"Storage - Blob Data Reader\",\"type\":\"BuiltInRole\",\"description\":\"Allows for read - access to Azure Storage blob containers and data\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/read\",\"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read\"],\"notDataActions\":[]}],\"createdOn\":\"2017-12-21T00:01:24.7972312Z\",\"updatedOn\":\"2019-07-15T22:01:25.5409721Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/2a2b9908-6ea1-4ae2-8e65-a410df84e7d1\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"2a2b9908-6ea1-4ae2-8e65-a410df84e7d1\"},{\"properties\":{\"roleName\":\"Storage - Queue Data Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Allows - for read, write, and delete access to Azure Storage queues and queue messages\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/queueServices/queues/delete\",\"Microsoft.Storage/storageAccounts/queueServices/queues/read\",\"Microsoft.Storage/storageAccounts/queueServices/queues/write\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/delete\",\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\",\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/write\"],\"notDataActions\":[]}],\"createdOn\":\"2017-12-21T00:01:24.7972312Z\",\"updatedOn\":\"2019-03-05T21:58:02.7367128Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/974c5e8b-45b9-4653-ba55-5f855dd0fb88\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"974c5e8b-45b9-4653-ba55-5f855dd0fb88\"},{\"properties\":{\"roleName\":\"Storage - Queue Data Message Processor\",\"type\":\"BuiltInRole\",\"description\":\"Allows - for peek, receive, and delete access to Azure Storage queue messages\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\",\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/process/action\"],\"notDataActions\":[]}],\"createdOn\":\"2019-01-28T22:27:04.8947111Z\",\"updatedOn\":\"2019-03-05T22:05:46.1259125Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/8a0f0c08-91a1-4084-bc3d-661d67233fed\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"8a0f0c08-91a1-4084-bc3d-661d67233fed\"},{\"properties\":{\"roleName\":\"Storage - Queue Data Message Sender\",\"type\":\"BuiltInRole\",\"description\":\"Allows - for sending of Azure Storage queue messages\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/add/action\"],\"notDataActions\":[]}],\"createdOn\":\"2019-01-28T22:28:34.7459724Z\",\"updatedOn\":\"2019-03-05T22:11:49.6383892Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/c6a89b2d-59bc-44d0-9896-0f6e12d7b80a\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"c6a89b2d-59bc-44d0-9896-0f6e12d7b80a\"},{\"properties\":{\"roleName\":\"Storage - Queue Data Reader\",\"type\":\"BuiltInRole\",\"description\":\"Allows for - read access to Azure Storage queues and queue messages\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/queueServices/queues/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/queueServices/queues/messages/read\"],\"notDataActions\":[]}],\"createdOn\":\"2017-12-21T00:01:24.7972312Z\",\"updatedOn\":\"2019-03-05T22:17:32.1779262Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/19e7f393-937e-4f77-808e-94535e297925\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"19e7f393-937e-4f77-808e-94535e297925\"},{\"properties\":{\"roleName\":\"Support - Request Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Lets you - create and manage Support requests\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2017-06-22T22:25:37.8053068Z\",\"updatedOn\":\"2017-06-23T01:06:24.2399631Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/cfd33db0-3dd1-45e3-aa9d-cdbdf3b6f24e\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"cfd33db0-3dd1-45e3-aa9d-cdbdf3b6f24e\"},{\"properties\":{\"roleName\":\"Traffic - Manager Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Lets you - manage Traffic Manager profiles, but does not let you control who has access - to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Network/trafficManagerProfiles/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-10-15T23:33:25.9730842Z\",\"updatedOn\":\"2016-05-31T23:13:44.1458854Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a4b10055-b0c7-44c2-b00f-c7b5b3550cf7\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a4b10055-b0c7-44c2-b00f-c7b5b3550cf7\"},{\"properties\":{\"roleName\":\"Virtual - Machine Administrator Login\",\"type\":\"BuiltInRole\",\"description\":\"View - Virtual Machines in the portal and login as administrator\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Network/publicIPAddresses/read\",\"Microsoft.Network/virtualNetworks/read\",\"Microsoft.Network/loadBalancers/read\",\"Microsoft.Network/networkInterfaces/read\",\"Microsoft.Compute/virtualMachines/*/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Compute/virtualMachines/login/action\",\"Microsoft.Compute/virtualMachines/loginAsAdmin/action\"],\"notDataActions\":[]}],\"createdOn\":\"2018-02-09T18:36:13.3315744Z\",\"updatedOn\":\"2018-05-09T22:17:57.0514548Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/1c0163c0-47e6-4577-8991-ea5c82e286e4\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"1c0163c0-47e6-4577-8991-ea5c82e286e4\"},{\"properties\":{\"roleName\":\"User - Access Administrator\",\"type\":\"BuiltInRole\",\"description\":\"Lets you - manage user access to Azure resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"*/read\",\"Microsoft.Authorization/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-02-05T21:24:12.6807454Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"18d7d88d-d35e-4fb5-a5c3-7773c20a72d9\"},{\"properties\":{\"roleName\":\"Virtual - Machine User Login\",\"type\":\"BuiltInRole\",\"description\":\"View Virtual - Machines in the portal and login as a regular user.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Network/publicIPAddresses/read\",\"Microsoft.Network/virtualNetworks/read\",\"Microsoft.Network/loadBalancers/read\",\"Microsoft.Network/networkInterfaces/read\",\"Microsoft.Compute/virtualMachines/*/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Compute/virtualMachines/login/action\"],\"notDataActions\":[]}],\"createdOn\":\"2018-02-09T18:36:13.3315744Z\",\"updatedOn\":\"2018-05-09T22:18:52.2780979Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/fb879df8-f326-4884-b1cf-06f3ad86be52\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"fb879df8-f326-4884-b1cf-06f3ad86be52\"},{\"properties\":{\"roleName\":\"Virtual - Machine Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Lets you - manage virtual machines, but not access to them, and not the virtual network - or storage account they're connected to.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Compute/availabilitySets/*\",\"Microsoft.Compute/locations/*\",\"Microsoft.Compute/virtualMachines/*\",\"Microsoft.Compute/virtualMachineScaleSets/*\",\"Microsoft.Compute/disks/write\",\"Microsoft.Compute/disks/read\",\"Microsoft.Compute/disks/delete\",\"Microsoft.DevTestLab/schedules/*\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Network/applicationGateways/backendAddressPools/join/action\",\"Microsoft.Network/loadBalancers/backendAddressPools/join/action\",\"Microsoft.Network/loadBalancers/inboundNatPools/join/action\",\"Microsoft.Network/loadBalancers/inboundNatRules/join/action\",\"Microsoft.Network/loadBalancers/probes/join/action\",\"Microsoft.Network/loadBalancers/read\",\"Microsoft.Network/locations/*\",\"Microsoft.Network/networkInterfaces/*\",\"Microsoft.Network/networkSecurityGroups/join/action\",\"Microsoft.Network/networkSecurityGroups/read\",\"Microsoft.Network/publicIPAddresses/join/action\",\"Microsoft.Network/publicIPAddresses/read\",\"Microsoft.Network/virtualNetworks/read\",\"Microsoft.Network/virtualNetworks/subnets/join/action\",\"Microsoft.RecoveryServices/locations/*\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/backupProtectionIntent/write\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/*/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/read\",\"Microsoft.RecoveryServices/Vaults/backupFabrics/protectionContainers/protectedItems/write\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/read\",\"Microsoft.RecoveryServices/Vaults/backupPolicies/write\",\"Microsoft.RecoveryServices/Vaults/read\",\"Microsoft.RecoveryServices/Vaults/usages/read\",\"Microsoft.RecoveryServices/Vaults/write\",\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.SqlVirtualMachine/*\",\"Microsoft.Storage/storageAccounts/listKeys/action\",\"Microsoft.Storage/storageAccounts/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-06-02T00:18:27.3542698Z\",\"updatedOn\":\"2020-02-03T19:38:21.2170228Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/9980e02c-c2be-4d73-94e8-173b1dc7cf3c\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"9980e02c-c2be-4d73-94e8-173b1dc7cf3c\"},{\"properties\":{\"roleName\":\"Web - Plan Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Lets you manage - the web plans for websites, but not access to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\",\"Microsoft.Web/serverFarms/*\",\"Microsoft.Web/hostingEnvironments/Join/Action\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-02-02T21:55:09.8806423Z\",\"updatedOn\":\"2019-03-26T18:17:34.5018645Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/2cc479cb-7b4d-49a8-b449-8c00fd0f0a4b\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"2cc479cb-7b4d-49a8-b449-8c00fd0f0a4b\"},{\"properties\":{\"roleName\":\"Website - Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Lets you manage websites - (not web plans), but not access to them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Insights/components/*\",\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\",\"Microsoft.Web/certificates/*\",\"Microsoft.Web/listSitesAssignedToHostName/read\",\"Microsoft.Web/serverFarms/join/action\",\"Microsoft.Web/serverFarms/read\",\"Microsoft.Web/sites/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2015-05-12T23:10:23.6193952Z\",\"updatedOn\":\"2019-02-05T21:24:46.9407288Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/de139f84-1756-47ae-9be6-808fbbe84772\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"de139f84-1756-47ae-9be6-808fbbe84772\"},{\"properties\":{\"roleName\":\"Azure - Service Bus Data Owner\",\"type\":\"BuiltInRole\",\"description\":\"Allows - for full access to Azure Service Bus resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ServiceBus/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.ServiceBus/*\"],\"notDataActions\":[]}],\"createdOn\":\"2019-04-16T21:33:36.7445745Z\",\"updatedOn\":\"2019-08-21T22:47:11.3982905Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/090c5cfd-751d-490a-894a-3ce6f1109419\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"090c5cfd-751d-490a-894a-3ce6f1109419\"},{\"properties\":{\"roleName\":\"Azure - Event Hubs Data Owner\",\"type\":\"BuiltInRole\",\"description\":\"Allows - for full access to Azure Event Hubs resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.EventHub/*\"],\"notActions\":[],\"dataActions\":[\"Microsoft.EventHub/*\"],\"notDataActions\":[]}],\"createdOn\":\"2019-04-16T21:34:29.8656362Z\",\"updatedOn\":\"2019-08-21T22:58:57.7584645Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/f526a384-b230-433a-b45c-95f59c4a2dec\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"f526a384-b230-433a-b45c-95f59c4a2dec\"},{\"properties\":{\"roleName\":\"Attestation - Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Can read write or - delete the attestation provider instance\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Attestation/attestationProviders/attestation/read\",\"Microsoft.Attestation/attestationProviders/attestation/write\",\"Microsoft.Attestation/attestationProviders/attestation/delete\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-04-19T00:24:09.3354177Z\",\"updatedOn\":\"2019-05-10T17:59:06.3448436Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/bbf86eb8-f7b4-4cce-96e4-18cddf81d86e\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"bbf86eb8-f7b4-4cce-96e4-18cddf81d86e\"},{\"properties\":{\"roleName\":\"HDInsight - Cluster Operator\",\"type\":\"BuiltInRole\",\"description\":\"Lets you read - and modify HDInsight cluster configurations.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.HDInsight/*/read\",\"Microsoft.HDInsight/clusters/getGatewaySettings/action\",\"Microsoft.HDInsight/clusters/updateGatewaySettings/action\",\"Microsoft.HDInsight/clusters/configurations/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/operations/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Authorization/*/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-04-20T00:03:01.7110732Z\",\"updatedOn\":\"2019-04-28T02:34:17.4679314Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/61ed4efc-fab3-44fd-b111-e24485cc132a\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"61ed4efc-fab3-44fd-b111-e24485cc132a\"},{\"properties\":{\"roleName\":\"Cosmos - DB Operator\",\"type\":\"BuiltInRole\",\"description\":\"Lets you manage Azure - Cosmos DB accounts, but not access data in them. Prevents access to account - keys and connection strings.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.DocumentDb/databaseAccounts/*\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Authorization/*/read\",\"Microsoft.ResourceHealth/availabilityStatuses/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\",\"Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action\"],\"notActions\":[\"Microsoft.DocumentDB/databaseAccounts/readonlyKeys/*\",\"Microsoft.DocumentDB/databaseAccounts/regenerateKey/*\",\"Microsoft.DocumentDB/databaseAccounts/listKeys/*\",\"Microsoft.DocumentDB/databaseAccounts/listConnectionStrings/*\"],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-04-26T17:01:17.0169383Z\",\"updatedOn\":\"2019-11-21T01:34:13.3746345Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/230815da-be43-4aae-9cb4-875f7bd000aa\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"230815da-be43-4aae-9cb4-875f7bd000aa\"},{\"properties\":{\"roleName\":\"Hybrid - Server Resource Administrator\",\"type\":\"BuiltInRole\",\"description\":\"Can - read, write, delete, and re-onboard Hybrid servers to the Hybrid Resource - Provider.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.HybridCompute/machines/*\",\"Microsoft.HybridCompute/*/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-04-29T21:39:32.3132923Z\",\"updatedOn\":\"2019-05-06T20:08:25.3180258Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/48b40c6e-82e0-4eb3-90d5-19e40f49b624\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"48b40c6e-82e0-4eb3-90d5-19e40f49b624\"},{\"properties\":{\"roleName\":\"Hybrid - Server Onboarding\",\"type\":\"BuiltInRole\",\"description\":\"Can onboard - new Hybrid servers to the Hybrid Resource Provider.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.HybridCompute/machines/read\",\"Microsoft.HybridCompute/machines/write\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-04-29T22:36:28.1873756Z\",\"updatedOn\":\"2019-05-06T20:09:17.9364269Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5d1e5ee4-7c68-4a71-ac8b-0739630a3dfb\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5d1e5ee4-7c68-4a71-ac8b-0739630a3dfb\"},{\"properties\":{\"roleName\":\"Azure - Event Hubs Data Receiver\",\"type\":\"BuiltInRole\",\"description\":\"Allows - receive access to Azure Event Hubs resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.EventHub/*/eventhubs/consumergroups/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.EventHub/*/receive/action\"],\"notDataActions\":[]}],\"createdOn\":\"2019-05-10T06:25:21.1056666Z\",\"updatedOn\":\"2019-08-21T23:00:32.6225396Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a638d3c7-ab3a-418d-83e6-5f17a39d4fde\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a638d3c7-ab3a-418d-83e6-5f17a39d4fde\"},{\"properties\":{\"roleName\":\"Azure - Event Hubs Data Sender\",\"type\":\"BuiltInRole\",\"description\":\"Allows - send access to Azure Event Hubs resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.EventHub/*/eventhubs/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.EventHub/*/send/action\"],\"notDataActions\":[]}],\"createdOn\":\"2019-05-10T06:26:12.4673714Z\",\"updatedOn\":\"2019-08-21T23:02:26.6155679Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/2b629674-e913-4c01-ae53-ef4638d8f975\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"2b629674-e913-4c01-ae53-ef4638d8f975\"},{\"properties\":{\"roleName\":\"Azure - Service Bus Data Receiver\",\"type\":\"BuiltInRole\",\"description\":\"Allows - for receive access to Azure Service Bus resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ServiceBus/*/queues/read\",\"Microsoft.ServiceBus/*/topics/read\",\"Microsoft.ServiceBus/*/topics/subscriptions/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.ServiceBus/*/receive/action\"],\"notDataActions\":[]}],\"createdOn\":\"2019-05-10T06:43:01.6343849Z\",\"updatedOn\":\"2019-08-21T22:55:24.3423558Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4f6d3b9b-027b-4f4c-9142-0e5a2a2247e0\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4f6d3b9b-027b-4f4c-9142-0e5a2a2247e0\"},{\"properties\":{\"roleName\":\"Azure - Service Bus Data Sender\",\"type\":\"BuiltInRole\",\"description\":\"Allows - for send access to Azure Service Bus resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ServiceBus/*/queues/read\",\"Microsoft.ServiceBus/*/topics/read\",\"Microsoft.ServiceBus/*/topics/subscriptions/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.ServiceBus/*/send/action\"],\"notDataActions\":[]}],\"createdOn\":\"2019-05-10T06:43:46.7046934Z\",\"updatedOn\":\"2019-08-21T22:57:12.2555683Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/69a216fc-b8fb-44d8-bc22-1f3c2cd27a39\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"69a216fc-b8fb-44d8-bc22-1f3c2cd27a39\"},{\"properties\":{\"roleName\":\"Storage - File Data SMB Share Reader\",\"type\":\"BuiltInRole\",\"description\":\"Allows - for read access to Azure File Share over SMB\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\"],\"notDataActions\":[]}],\"createdOn\":\"2019-07-01T20:19:31.8620471Z\",\"updatedOn\":\"2019-08-07T01:00:41.9223409Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/aba4ae5f-2193-4029-9191-0cb91df5e314\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"aba4ae5f-2193-4029-9191-0cb91df5e314\"},{\"properties\":{\"roleName\":\"Storage - File Data SMB Share Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Allows - for read, write, and delete access in Azure Storage file shares over SMB\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\",\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write\",\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/delete\"],\"notDataActions\":[]}],\"createdOn\":\"2019-07-01T20:54:35.4834310Z\",\"updatedOn\":\"2019-08-07T01:05:24.4309872Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/0c867c2a-1d8c-454a-a3db-ab2ea1bdc8bb\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"0c867c2a-1d8c-454a-a3db-ab2ea1bdc8bb\"},{\"properties\":{\"roleName\":\"Private - DNS Zone Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Lets you - manage private DNS zone resources, but not the virtual networks they are linked - to.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Support/*\",\"Microsoft.Network/privateDnsZones/*\",\"Microsoft.Network/privateDnsOperationResults/*\",\"Microsoft.Network/privateDnsOperationStatuses/*\",\"Microsoft.Network/virtualNetworks/read\",\"Microsoft.Network/virtualNetworks/join/action\",\"Microsoft.Authorization/*/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-07-10T19:31:15.5645518Z\",\"updatedOn\":\"2019-07-11T21:12:01.7260648Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b12aa53e-6015-4669-85d0-8515ebb3ae7f\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b12aa53e-6015-4669-85d0-8515ebb3ae7f\"},{\"properties\":{\"roleName\":\"Storage - Blob Delegator\",\"type\":\"BuiltInRole\",\"description\":\"Allows for generation - of a user delegation key which can be used to sign SAS tokens\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-07-23T00:51:16.3376761Z\",\"updatedOn\":\"2019-07-23T01:14:31.8778475Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/db58b8e5-c6ad-4a2a-8342-4190687cbf4a\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"db58b8e5-c6ad-4a2a-8342-4190687cbf4a\"},{\"properties\":{\"roleName\":\"Desktop - Virtualization User\",\"type\":\"BuiltInRole\",\"description\":\"Allows user - to use the applications in an application group.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.DesktopVirtualization/applicationGroups/useApplications/action\"],\"notDataActions\":[]}],\"createdOn\":\"2019-08-07T00:29:03.8727621Z\",\"updatedOn\":\"2019-08-07T00:29:03.8727621Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"1d18fff3-a72a-46b5-b4a9-0b38a3cd7e63\"},{\"properties\":{\"roleName\":\"Storage - File Data SMB Share Elevated Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Allows - for read, write, delete and modify NTFS permission access in Azure Storage - file shares over SMB\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/read\",\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/write\",\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/delete\",\"Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action\"],\"notDataActions\":[]}],\"createdOn\":\"2019-08-07T01:35:36.9935457Z\",\"updatedOn\":\"2019-08-07T01:35:36.9935457Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a7264617-510b-434b-a828-9731dc254ea7\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a7264617-510b-434b-a828-9731dc254ea7\"},{\"properties\":{\"roleName\":\"Blueprint - Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Can manage blueprint - definitions, but not assign them.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Blueprint/blueprints/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-08-14T21:55:16.9683949Z\",\"updatedOn\":\"2019-08-17T00:10:55.7494677Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/41077137-e803-4205-871c-5a86e6a753b4\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"41077137-e803-4205-871c-5a86e6a753b4\"},{\"properties\":{\"roleName\":\"Blueprint - Operator\",\"type\":\"BuiltInRole\",\"description\":\"Can assign existing - published blueprints, but cannot create new blueprints. NOTE: this only works - if the assignment is done with a user-assigned managed identity.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Blueprint/blueprintAssignments/*\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-08-14T21:56:48.7897875Z\",\"updatedOn\":\"2019-08-17T00:06:02.6509737Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/437d2ced-4a38-4302-8479-ed2bcb43d090\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"437d2ced-4a38-4302-8479-ed2bcb43d090\"},{\"properties\":{\"roleName\":\"Azure - Sentinel Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Azure Sentinel - Contributor\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.SecurityInsights/*\",\"Microsoft.OperationalInsights/workspaces/analytics/query/action\",\"Microsoft.OperationalInsights/workspaces/*/read\",\"Microsoft.OperationalInsights/workspaces/savedSearches/*\",\"Microsoft.OperationsManagement/solutions/read\",\"Microsoft.OperationalInsights/workspaces/query/read\",\"Microsoft.OperationalInsights/workspaces/query/*/read\",\"Microsoft.OperationalInsights/workspaces/dataSources/read\",\"Microsoft.Insights/workbooks/*\",\"Microsoft.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.GuestConfiguration/guestConfigurationAssignments/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-10-23T20:15:07.1372870Z\",\"updatedOn\":\"2019-11-03T18:26:59.2060282Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b64e21ea-ac4e-4cdf-9dc9-5b892992bee7\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b64e21ea-ac4e-4cdf-9dc9-5b892992bee7\"},{\"properties\":{\"roleName\":\"Azure - Connected Machine Resource Administrator\",\"type\":\"BuiltInRole\",\"description\":\"Can - read, write, delete and re-onboard Azure Connected Machines.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.HybridCompute/machines/read\",\"Microsoft.HybridCompute/machines/write\",\"Microsoft.HybridCompute/machines/delete\",\"Microsoft.HybridCompute/machines/reconnect/action\",\"Microsoft.HybridCompute/machines/extensions/write\",\"Microsoft.HybridCompute/*/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-10-23T20:24:59.1474607Z\",\"updatedOn\":\"2020-03-19T22:39:54.1226122Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/cd570a14-e51a-42ad-bac8-bafd67325302\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"cd570a14-e51a-42ad-bac8-bafd67325302\"},{\"properties\":{\"roleName\":\"Managed - Services Registration assignment Delete Role\",\"type\":\"BuiltInRole\",\"description\":\"Managed - Services Registration Assignment Delete Role allows the managing tenant users - to delete the registration assignment assigned to their tenant.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.ManagedServices/registrationAssignments/read\",\"Microsoft.ManagedServices/registrationAssignments/delete\",\"Microsoft.ManagedServices/operationStatuses/read\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-10-23T22:33:33.1183469Z\",\"updatedOn\":\"2019-10-24T21:49:09.3875276Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/91c1777a-f3dc-4fae-b103-61d183457e46\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"91c1777a-f3dc-4fae-b103-61d183457e46\"},{\"properties\":{\"roleName\":\"App - Configuration Data Owner\",\"type\":\"BuiltInRole\",\"description\":\"Allows - full access to App Configuration data.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.AppConfiguration/configurationStores/*/read\",\"Microsoft.AppConfiguration/configurationStores/*/write\",\"Microsoft.AppConfiguration/configurationStores/*/delete\"],\"notDataActions\":[]}],\"createdOn\":\"2019-10-25T18:41:40.1185063Z\",\"updatedOn\":\"2019-10-25T18:41:40.1185063Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"5ae67dd6-50cb-40e7-96ff-dc2bfa4b606b\"},{\"properties\":{\"roleName\":\"App - Configuration Data Reader\",\"type\":\"BuiltInRole\",\"description\":\"Allows - read access to App Configuration data.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.AppConfiguration/configurationStores/*/read\"],\"notDataActions\":[]}],\"createdOn\":\"2019-10-25T18:45:33.7975332Z\",\"updatedOn\":\"2019-10-25T18:45:33.7975332Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/516239f1-63e1-4d78-a4de-a74fb236a071\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"516239f1-63e1-4d78-a4de-a74fb236a071\"},{\"properties\":{\"roleName\":\"Kubernetes - Cluster - Azure Arc Onboarding\",\"type\":\"BuiltInRole\",\"description\":\"Role - definition to authorize any user/service to create connectedClusters resource\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Resources/deployments/write\",\"Microsoft.Resources/subscriptions/operationresults/read\",\"Microsoft.Resources/subscriptions/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Kubernetes/connectedClusters/Write\",\"Microsoft.Kubernetes/connectedClusters/read\",\"Microsoft.Support/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2019-11-18T17:00:02.2087147Z\",\"updatedOn\":\"2020-02-10T22:40:48.3317559Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/34e09817-6cbe-4d01-b1a2-e0eac5743d41\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"34e09817-6cbe-4d01-b1a2-e0eac5743d41\"},{\"properties\":{\"roleName\":\"Experimentation - Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Experimentation Contributor\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/read\",\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/experiment/action\",\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/emergencystop/action\",\"Microsoft.Experimentation/experimentWorkspaces/read\",\"Microsoft.Experimentation/experimentWorkspaces/write\",\"Microsoft.Experimentation/experimentWorkspaces/delete\"],\"notDataActions\":[]}],\"createdOn\":\"2019-12-13T00:08:08.6679591Z\",\"updatedOn\":\"2020-07-07T20:17:06.8223079Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7f646f1b-fa08-80eb-a22b-edd6ce5c915c\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7f646f1b-fa08-80eb-a22b-edd6ce5c915c\"},{\"properties\":{\"roleName\":\"Cognitive - Services QnA Maker Reader\",\"type\":\"BuiltInRole\",\"description\":\"Let\u2019s - you read and test a KB only.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\",\"Microsoft.Authorization/roleAssignments/read\",\"Microsoft.Authorization/roleDefinitions/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/download/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/generateanswer/action\",\"Microsoft.CognitiveServices/accounts/QnAMaker/alterations/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker/endpointkeys/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker/endpointsettings/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/download/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/generateanswer/action\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/alterations/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointkeys/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointsettings/read\"],\"notDataActions\":[]}],\"createdOn\":\"2019-12-17T18:26:12.3329439Z\",\"updatedOn\":\"2020-05-08T12:03:46.9266538Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/466ccd10-b268-4a11-b098-b4849f024126\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"466ccd10-b268-4a11-b098-b4849f024126\"},{\"properties\":{\"roleName\":\"Cognitive - Services QnA Maker Editor\",\"type\":\"BuiltInRole\",\"description\":\"Let\u2019s - you create, edit, import and export a KB. You cannot publish or delete a KB.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.CognitiveServices/*/read\",\"Microsoft.Authorization/roleAssignments/read\",\"Microsoft.Authorization/roleDefinitions/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/download/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/create/write\",\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/write\",\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/generateanswer/action\",\"Microsoft.CognitiveServices/accounts/QnAMaker/knowledgebases/train/action\",\"Microsoft.CognitiveServices/accounts/QnAMaker/alterations/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker/alterations/write\",\"Microsoft.CognitiveServices/accounts/QnAMaker/endpointkeys/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker/endpointkeys/refreshkeys/action\",\"Microsoft.CognitiveServices/accounts/QnAMaker/endpointsettings/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker/endpointsettings/write\",\"Microsoft.CognitiveServices/accounts/QnAMaker/operations/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/download/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/create/write\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/write\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/generateanswer/action\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/knowledgebases/train/action\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/alterations/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/alterations/write\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointkeys/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointkeys/refreshkeys/action\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointsettings/read\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/endpointsettings/write\",\"Microsoft.CognitiveServices/accounts/QnAMaker.v2/operations/read\"],\"notDataActions\":[]}],\"createdOn\":\"2019-12-17T18:27:30.6434556Z\",\"updatedOn\":\"2020-05-08T12:02:34.0065552Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/f4cc2bf9-21be-47a1-bdf1-5c5804381025\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"f4cc2bf9-21be-47a1-bdf1-5c5804381025\"},{\"properties\":{\"roleName\":\"Experimentation - Administrator\",\"type\":\"BuiltInRole\",\"description\":\"Experimentation - Administrator\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Resources/subscriptions/resourceGroups/read\"],\"notActions\":[],\"dataActions\":[\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/admin/action\",\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/read\",\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/write\",\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/delete\",\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/experimentadmin/action\",\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/experiment/action\",\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/emergencystop/action\",\"Microsoft.Experimentation/experimentWorkspaces/read\",\"Microsoft.Experimentation/experimentWorkspaces/write\",\"Microsoft.Experimentation/experimentWorkspaces/delete\",\"Microsoft.Experimentation/experimentWorkspaces/admin/action\"],\"notDataActions\":[]}],\"createdOn\":\"2019-12-18T22:46:33.1116612Z\",\"updatedOn\":\"2020-04-22T20:10:20.1216929Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/7f646f1b-fa08-80eb-a33b-edd6ce5c915c\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"7f646f1b-fa08-80eb-a33b-edd6ce5c915c\"},{\"properties\":{\"roleName\":\"Remote - Rendering Administrator\",\"type\":\"BuiltInRole\",\"description\":\"Provides - user with conversion, manage session, rendering and diagnostics capabilities - for Azure Remote Rendering\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.MixedReality/RemoteRenderingAccounts/convert/action\",\"Microsoft.MixedReality/RemoteRenderingAccounts/convert/read\",\"Microsoft.MixedReality/RemoteRenderingAccounts/convert/delete\",\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/read\",\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/action\",\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/delete\",\"Microsoft.MixedReality/RemoteRenderingAccounts/render/read\",\"Microsoft.MixedReality/RemoteRenderingAccounts/diagnostic/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-01-23T18:15:31.3450348Z\",\"updatedOn\":\"2020-01-23T18:15:31.3450348Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/3df8b902-2a6f-47c7-8cc5-360e9b272a7e\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"3df8b902-2a6f-47c7-8cc5-360e9b272a7e\"},{\"properties\":{\"roleName\":\"Remote - Rendering Client\",\"type\":\"BuiltInRole\",\"description\":\"Provides user - with manage session, rendering and diagnostics capabilities for Azure Remote - Rendering.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/read\",\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/action\",\"Microsoft.MixedReality/RemoteRenderingAccounts/managesessions/delete\",\"Microsoft.MixedReality/RemoteRenderingAccounts/render/read\",\"Microsoft.MixedReality/RemoteRenderingAccounts/diagnostic/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-01-23T18:32:52.7069824Z\",\"updatedOn\":\"2020-01-23T18:32:52.7069824Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/d39065c4-c120-43c9-ab0a-63eed9795f0a\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"d39065c4-c120-43c9-ab0a-63eed9795f0a\"},{\"properties\":{\"roleName\":\"Managed - Application Contributor Role\",\"type\":\"BuiltInRole\",\"description\":\"Allows - for creating managed application resources.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"*/read\",\"Microsoft.Solutions/applications/*\",\"Microsoft.Solutions/register/action\",\"Microsoft.Resources/subscriptions/resourceGroups/*\",\"Microsoft.Resources/deployments/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-02-08T03:39:11.8933879Z\",\"updatedOn\":\"2020-03-23T02:12:30.0853051Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/641177b8-a67a-45b9-a033-47bc880bb21e\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"641177b8-a67a-45b9-a033-47bc880bb21e\"},{\"properties\":{\"roleName\":\"Security - Assessment Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Lets you - push assessments to Security Center\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Security/assessments/write\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-02-13T08:23:47.7656161Z\",\"updatedOn\":\"2020-02-13T08:23:47.7656161Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/612c2aa1-cb24-443b-ac28-3ab7272de6f5\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"612c2aa1-cb24-443b-ac28-3ab7272de6f5\"},{\"properties\":{\"roleName\":\"Tag - Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Lets you manage tags - on entities, without providing access to the entities themselves.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Resources/subscriptions/resourceGroups/read\",\"Microsoft.Resources/subscriptions/resourceGroups/resources/read\",\"Microsoft.Resources/subscriptions/resources/read\",\"Microsoft.Resources/deployments/*\",\"Microsoft.Insights/alertRules/*\",\"Microsoft.Support/*\",\"Microsoft.Resources/tags/*\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-02-18T23:19:19.2977644Z\",\"updatedOn\":\"2020-02-19T00:04:58.9214962Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4a9ae827-6dc8-4573-8ac7-8239d42aa03f\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4a9ae827-6dc8-4573-8ac7-8239d42aa03f\"},{\"properties\":{\"roleName\":\"Integration - Service Environment Developer\",\"type\":\"BuiltInRole\",\"description\":\"Allows - developers to create and update workflows, integration accounts and API connections - in integration service environments.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[\"Microsoft.Authorization/*/read\",\"Microsoft.Support/*\",\"Microsoft.Logic/integrationServiceEnvironments/read\",\"Microsoft.Logic/integrationServiceEnvironments/*/join/action\"],\"notActions\":[],\"dataActions\":[],\"notDataActions\":[]}],\"createdOn\":\"2020-02-20T21:09:00.5627875Z\",\"updatedOn\":\"2020-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 (preview)\",\"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\":\"2020-08-28T21:50:54.2757440Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/00482a5a-887f-4fb3-b363-3b7fe8e74483\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"00482a5a-887f-4fb3-b363-3b7fe8e74483\"},{\"properties\":{\"roleName\":\"Key - Vault Crypto Officer (preview)\",\"type\":\"BuiltInRole\",\"description\":\"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\":\"2020-08-28T21:54:14.5701074Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/14b46e9e-c2b7-41b4-b07b-48a6ebf60603\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"14b46e9e-c2b7-41b4-b07b-48a6ebf60603\"},{\"properties\":{\"roleName\":\"Key - Vault Crypto User (preview)\",\"type\":\"BuiltInRole\",\"description\":\"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\":\"2020-08-28T21:56:36.1428164Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/12338af0-0e69-4776-bea7-57ae8d297424\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"12338af0-0e69-4776-bea7-57ae8d297424\"},{\"properties\":{\"roleName\":\"Key - Vault Secrets Officer (preview)\",\"type\":\"BuiltInRole\",\"description\":\"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\":\"2020-08-28T21:58:21.8687365Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/b86a8fe4-44ce-4948-aee5-eccb2c155cd7\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"b86a8fe4-44ce-4948-aee5-eccb2c155cd7\"},{\"properties\":{\"roleName\":\"Key - Vault Secrets User (preview)\",\"type\":\"BuiltInRole\",\"description\":\"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\":\"2020-08-28T21:21:39.0039234Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/4633458b-17de-408a-b874-0445c86b69e6\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"4633458b-17de-408a-b874-0445c86b69e6\"},{\"properties\":{\"roleName\":\"Key - Vault Certificates Officer (preview)\",\"type\":\"BuiltInRole\",\"description\":\"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\":\"2020-08-28T21:40:44.5223124Z\",\"createdBy\":null,\"updatedBy\":null},\"id\":\"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/a4417e6f-fecd-4de8-b567-7b0420556985\",\"type\":\"Microsoft.Authorization/roleDefinitions\",\"name\":\"a4417e6f-fecd-4de8-b567-7b0420556985\"},{\"properties\":{\"roleName\":\"Key - Vault Reader (preview)\",\"type\":\"BuiltInRole\",\"description\":\"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\":\"2020-08-28T21:06:06.6209313Z\",\"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 (preview)\",\"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\":\"2020-12-18T02:07:07.8257872Z\",\"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/dataPackages/*\",\"Microsoft.IndustryDataLifecycle/custodianCollaboratives/receivedDataPackages/*\",\"Microsoft.IndustryDataLifecycle/custodianCollaboratives/rejectDataPackage/action\",\"Microsoft.IndustryDataLifecycle/memberCollaboratives/sharedDataPackages/*\",\"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\":\"2020-08-14T12:36:49.5626061Z\",\"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\"],\"notDataActions\":[]}],\"createdOn\":\"2020-10-01T08:55:21.3980274Z\",\"updatedOn\":\"2020-10-19T07:11:48.9552954Z\",\"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/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\":\"2020-10-23T08:25:07.1104987Z\",\"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\":\"Metric - Contributor\",\"type\":\"BuiltInRole\",\"description\":\"Allows for creation, - writes and reads to the metric set via the metrics service APIs.\",\"assignableScopes\":[\"/\"],\"permissions\":[{\"actions\":[],\"notActions\":[],\"dataActions\":[\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/write\",\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/read\",\"Microsoft.Experimentation/experimentWorkspaces/experimentationGroups/metricwrite/action\"],\"notDataActions\":[]}],\"createdOn\":\"2020-11-10T20:07:53.7535885Z\",\"updatedOn\":\"2020-11-23T18:58:12.6058824Z\",\"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/*\"],\"notDataActions\":[\"Microsoft.AutonomousDevelopmentPlatform/accounts/dataPools/measurements/states/new/changeState/action\"]}],\"createdOn\":\"2020-12-15T11:30:01.7459379Z\",\"updatedOn\":\"2021-01-05T15:53:39.9593947Z\",\"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/dataPools/*/read\"],\"notDataActions\":[]}],\"createdOn\":\"2020-12-15T12:11:31.9843256Z\",\"updatedOn\":\"2020-12-15T12:11:31.9843256Z\",\"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/dataPools/*\"],\"notDataActions\":[]}],\"createdOn\":\"2020-12-15T12:13:59.9702378Z\",\"updatedOn\":\"2020-12-15T12:13:59.9702378Z\",\"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\"}]}" - headers: - cache-control: - - no-cache - content-length: - - '271724' - content-type: - - application/json; charset=utf-8 - date: - - Thu, 14 Jan 2021 03:22:45 GMT - expires: - - '-1' - pragma: - - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: '{"objectIds": ["aec1e0fd-9d6b-4885-887b-51eeb838031c", "aba9e85c-2772-4540-9cff-e17797872a4f", - "f38f83c9-1619-4877-92b7-2af0b6685c5b", "f44aacb9-ad0e-446f-bef6-96b8475738a7", - "2a4a86dc-7337-4d70-a757-631ffd93628d", "fdb68281-d99a-4d84-aadc-ad725ebb29d2", - "66497ceb-caf8-4678-812a-fa858cb1b62f", "c053781e-64dd-489b-ae5a-80d7d4ffab7b", - "d9ebd88d-2585-46c3-abcf-4684adbc54e2", "a2807a61-2ec7-408e-b8e4-78cf3d9715ef", - "17ffc090-92d5-4539-8fd4-f1d3190b4db7", "bc53cdc1-5485-4cd2-b094-cba43901c268"], - "includeDirectoryObjectReferences": true}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor delete - Connection: - - keep-alive - Content-Length: - - '537' - Content-Type: - - application/json; charset=utf-8 - ParameterSetName: - - -y --name --resource-group - User-Agent: - - python/3.7.8 (Windows-10-10.0.19041-SP0) msrest/0.6.19 msrest_azure/0.6.4 - azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.17.1 - accept-language: - - en-US - method: POST - uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/getObjectsByObjectIds?api-version=1.6 - response: - body: - string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects","value":[{"odata.type":"Microsoft.DirectoryServices.ServicePrincipal","objectType":"ServicePrincipal","objectId":"c053781e-64dd-489b-ae5a-80d7d4ffab7b","deletionTimestamp":null,"accountEnabled":true,"addIns":[],"alternativeNames":["isExplicit=False","/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/datadog-sdk-test-rg5851/providers/Microsoft.Datadog/monitors/test113215"],"appDisplayName":null,"appId":"ddcf38f6-e4f2-42ba-be2d-4f92d125cb87","applicationTemplateId":null,"appOwnerTenantId":null,"appRoleAssignmentRequired":false,"appRoles":[],"displayName":"test113215","errorUrl":null,"homepage":null,"informationalUrls":null,"keyCredentials":[{"customKeyIdentifier":"BC8366C7B239574EE8E542D8A6A93B0CF74A4234","endDate":"2021-04-14T02:29:00Z","keyId":"7fe43784-ac4d-4904-aefa-61b61fe64b3e","startDate":"2021-01-14T02:29:00Z","type":"AsymmetricX509Cert","usage":"Verify","value":null}],"logoutUrl":null,"notificationEmailAddresses":[],"oauth2Permissions":[],"passwordCredentials":[],"preferredSingleSignOnMode":null,"preferredTokenSigningKeyEndDateTime":null,"preferredTokenSigningKeyThumbprint":null,"publisherName":null,"replyUrls":[],"samlMetadataUrl":null,"samlSingleSignOnSettings":null,"servicePrincipalNames":["ddcf38f6-e4f2-42ba-be2d-4f92d125cb87","https://identity.azure.net/2xOSd4H/5Ed0qS3txsA0rVOrggb3pjBiA/87Mq4fae4="],"servicePrincipalType":"ManagedIdentity","signInAudience":null,"tags":[],"tokenEncryptionKeyId":null},{"odata.type":"Microsoft.DirectoryServices.ServicePrincipal","objectType":"ServicePrincipal","objectId":"d9ebd88d-2585-46c3-abcf-4684adbc54e2","deletionTimestamp":null,"accountEnabled":true,"addIns":[],"alternativeNames":["isExplicit=False","/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor"],"appDisplayName":null,"appId":"d3db9ebb-1111-4e86-bc31-9c277b6e45ce","applicationTemplateId":null,"appOwnerTenantId":null,"appRoleAssignmentRequired":false,"appRoles":[],"displayName":"myMonitor","errorUrl":null,"homepage":null,"informationalUrls":null,"keyCredentials":[{"customKeyIdentifier":"8FDB5DD4C7C0919FFDA544B92B53EBD28FED2A32","endDate":"2021-04-14T03:15:00Z","keyId":"4c6b3112-4706-45cf-a438-0f5fc2763c8f","startDate":"2021-01-14T03:15:00Z","type":"AsymmetricX509Cert","usage":"Verify","value":null}],"logoutUrl":null,"notificationEmailAddresses":[],"oauth2Permissions":[],"passwordCredentials":[],"preferredSingleSignOnMode":null,"preferredTokenSigningKeyEndDateTime":null,"preferredTokenSigningKeyThumbprint":null,"publisherName":null,"replyUrls":[],"samlMetadataUrl":null,"samlSingleSignOnSettings":null,"servicePrincipalNames":["d3db9ebb-1111-4e86-bc31-9c277b6e45ce","https://identity.azure.net/ywUPoYAXlJmogIfzF2EifKFrCRNCZ6rmuOFXM01r5jc="],"servicePrincipalType":"ManagedIdentity","signInAudience":null,"tags":[],"tokenEncryptionKeyId":null}]}' - headers: - access-control-allow-origin: - - '*' - cache-control: - - no-cache - content-length: - - '3056' - content-type: - - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 - dataserviceversion: - - 3.0; - date: - - Thu, 14 Jan 2021 03:22:46 GMT - duration: - - '681452' - expires: - - '-1' - ocp-aad-diagnostics-server-name: - - 59OCHzJHCxhhT7FhpZromaJYcrmR37pzbTf89DrTXxI= - ocp-aad-session-key: - - Vqwkh8Ym7nnraZ2hgwEgbJBWxsgmMRefGsbRcMhDOlhjoawt5KdNrNZrgisysLvqWAlU6ofZQ-kgBrrUHb9O_4USHkAEovgNZ2zQbPIki2Mpdg-bj9hobGb5z1Froswl.KDoLTETTs5xbbJrZvNgBU8HbVlogh8c2CBnzjhvMdFI - pragma: - - no-cache - request-id: - - 862ccf5c-fc4e-4c04-8603-08586582c938 - 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: '{"objectIds": ["aec1e0fd-9d6b-4885-887b-51eeb838031c", "aba9e85c-2772-4540-9cff-e17797872a4f", - "f38f83c9-1619-4877-92b7-2af0b6685c5b", "f44aacb9-ad0e-446f-bef6-96b8475738a7", - "2a4a86dc-7337-4d70-a757-631ffd93628d", "fdb68281-d99a-4d84-aadc-ad725ebb29d2", - "66497ceb-caf8-4678-812a-fa858cb1b62f", "c053781e-64dd-489b-ae5a-80d7d4ffab7b", - "d9ebd88d-2585-46c3-abcf-4684adbc54e2", "a2807a61-2ec7-408e-b8e4-78cf3d9715ef", - "17ffc090-92d5-4539-8fd4-f1d3190b4db7", "bc53cdc1-5485-4cd2-b094-cba43901c268"], - "includeDirectoryObjectReferences": true}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor delete - Connection: - - keep-alive - Content-Length: - - '537' - Content-Type: - - application/json; charset=utf-8 - ParameterSetName: - - -y --name --resource-group - User-Agent: - - python/3.7.8 (Windows-10-10.0.19041-SP0) msrest/0.6.19 msrest_azure/0.6.4 - azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.17.1 - accept-language: - - en-US - method: POST - uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/getObjectsByObjectIds?api-version=1.6 - response: - body: - string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects","value":[{"odata.type":"Microsoft.DirectoryServices.ServicePrincipal","objectType":"ServicePrincipal","objectId":"c053781e-64dd-489b-ae5a-80d7d4ffab7b","deletionTimestamp":null,"accountEnabled":true,"addIns":[],"alternativeNames":["isExplicit=False","/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/datadog-sdk-test-rg5851/providers/Microsoft.Datadog/monitors/test113215"],"appDisplayName":null,"appId":"ddcf38f6-e4f2-42ba-be2d-4f92d125cb87","applicationTemplateId":null,"appOwnerTenantId":null,"appRoleAssignmentRequired":false,"appRoles":[],"displayName":"test113215","errorUrl":null,"homepage":null,"informationalUrls":null,"keyCredentials":[{"customKeyIdentifier":"BC8366C7B239574EE8E542D8A6A93B0CF74A4234","endDate":"2021-04-14T02:29:00Z","keyId":"7fe43784-ac4d-4904-aefa-61b61fe64b3e","startDate":"2021-01-14T02:29:00Z","type":"AsymmetricX509Cert","usage":"Verify","value":null}],"logoutUrl":null,"notificationEmailAddresses":[],"oauth2Permissions":[],"passwordCredentials":[],"preferredSingleSignOnMode":null,"preferredTokenSigningKeyEndDateTime":null,"preferredTokenSigningKeyThumbprint":null,"publisherName":null,"replyUrls":[],"samlMetadataUrl":null,"samlSingleSignOnSettings":null,"servicePrincipalNames":["ddcf38f6-e4f2-42ba-be2d-4f92d125cb87","https://identity.azure.net/2xOSd4H/5Ed0qS3txsA0rVOrggb3pjBiA/87Mq4fae4="],"servicePrincipalType":"ManagedIdentity","signInAudience":null,"tags":[],"tokenEncryptionKeyId":null},{"odata.type":"Microsoft.DirectoryServices.ServicePrincipal","objectType":"ServicePrincipal","objectId":"d9ebd88d-2585-46c3-abcf-4684adbc54e2","deletionTimestamp":null,"accountEnabled":true,"addIns":[],"alternativeNames":["isExplicit=False","/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor"],"appDisplayName":null,"appId":"d3db9ebb-1111-4e86-bc31-9c277b6e45ce","applicationTemplateId":null,"appOwnerTenantId":null,"appRoleAssignmentRequired":false,"appRoles":[],"displayName":"myMonitor","errorUrl":null,"homepage":null,"informationalUrls":null,"keyCredentials":[{"customKeyIdentifier":"8FDB5DD4C7C0919FFDA544B92B53EBD28FED2A32","endDate":"2021-04-14T03:15:00Z","keyId":"4c6b3112-4706-45cf-a438-0f5fc2763c8f","startDate":"2021-01-14T03:15:00Z","type":"AsymmetricX509Cert","usage":"Verify","value":null}],"logoutUrl":null,"notificationEmailAddresses":[],"oauth2Permissions":[],"passwordCredentials":[],"preferredSingleSignOnMode":null,"preferredTokenSigningKeyEndDateTime":null,"preferredTokenSigningKeyThumbprint":null,"publisherName":null,"replyUrls":[],"samlMetadataUrl":null,"samlSingleSignOnSettings":null,"servicePrincipalNames":["d3db9ebb-1111-4e86-bc31-9c277b6e45ce","https://identity.azure.net/ywUPoYAXlJmogIfzF2EifKFrCRNCZ6rmuOFXM01r5jc="],"servicePrincipalType":"ManagedIdentity","signInAudience":null,"tags":[],"tokenEncryptionKeyId":null}]}' - headers: - access-control-allow-origin: - - '*' - cache-control: - - no-cache - content-length: - - '3056' - content-type: - - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 - dataserviceversion: - - 3.0; - date: - - Thu, 14 Jan 2021 03:22:46 GMT - duration: - - '681452' - expires: - - '-1' - ocp-aad-diagnostics-server-name: - - 59OCHzJHCxhhT7FhpZromaJYcrmR37pzbTf89DrTXxI= - ocp-aad-session-key: - - Vqwkh8Ym7nnraZ2hgwEgbJBWxsgmMRefGsbRcMhDOlhjoawt5KdNrNZrgisysLvqWAlU6ofZQ-kgBrrUHb9O_4USHkAEovgNZ2zQbPIki2Mpdg-bj9hobGb5z1Froswl.KDoLTETTs5xbbJrZvNgBU8HbVlogh8c2CBnzjhvMdFI - pragma: - - no-cache - request-id: - - 862ccf5c-fc4e-4c04-8603-08586582c938 - 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: '{"objectIds": ["aec1e0fd-9d6b-4885-887b-51eeb838031c", "aba9e85c-2772-4540-9cff-e17797872a4f", - "f38f83c9-1619-4877-92b7-2af0b6685c5b", "f44aacb9-ad0e-446f-bef6-96b8475738a7", - "2a4a86dc-7337-4d70-a757-631ffd93628d", "fdb68281-d99a-4d84-aadc-ad725ebb29d2", - "66497ceb-caf8-4678-812a-fa858cb1b62f", "c053781e-64dd-489b-ae5a-80d7d4ffab7b", - "d9ebd88d-2585-46c3-abcf-4684adbc54e2", "a2807a61-2ec7-408e-b8e4-78cf3d9715ef", - "17ffc090-92d5-4539-8fd4-f1d3190b4db7", "bc53cdc1-5485-4cd2-b094-cba43901c268"], - "includeDirectoryObjectReferences": true}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor delete - Connection: - - keep-alive - Content-Length: - - '537' - Content-Type: - - application/json; charset=utf-8 - ParameterSetName: - - -y --name --resource-group - User-Agent: - - python/3.7.8 (Windows-10-10.0.19041-SP0) msrest/0.6.19 msrest_azure/0.6.4 - azure-graphrbac/0.60.0 Azure-SDK-For-Python AZURECLI/2.17.1 - accept-language: - - en-US - method: POST - uri: https://graph.windows.net/00000000-0000-0000-0000-000000000000/getObjectsByObjectIds?api-version=1.6 - response: - body: - string: '{"odata.metadata":"https://graph.windows.net/00000000-0000-0000-0000-000000000000/$metadata#directoryObjects","value":[{"odata.type":"Microsoft.DirectoryServices.ServicePrincipal","objectType":"ServicePrincipal","objectId":"c053781e-64dd-489b-ae5a-80d7d4ffab7b","deletionTimestamp":null,"accountEnabled":true,"addIns":[],"alternativeNames":["isExplicit=False","/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/datadog-sdk-test-rg5851/providers/Microsoft.Datadog/monitors/test113215"],"appDisplayName":null,"appId":"ddcf38f6-e4f2-42ba-be2d-4f92d125cb87","applicationTemplateId":null,"appOwnerTenantId":null,"appRoleAssignmentRequired":false,"appRoles":[],"displayName":"test113215","errorUrl":null,"homepage":null,"informationalUrls":null,"keyCredentials":[{"customKeyIdentifier":"BC8366C7B239574EE8E542D8A6A93B0CF74A4234","endDate":"2021-04-14T02:29:00Z","keyId":"7fe43784-ac4d-4904-aefa-61b61fe64b3e","startDate":"2021-01-14T02:29:00Z","type":"AsymmetricX509Cert","usage":"Verify","value":null}],"logoutUrl":null,"notificationEmailAddresses":[],"oauth2Permissions":[],"passwordCredentials":[],"preferredSingleSignOnMode":null,"preferredTokenSigningKeyEndDateTime":null,"preferredTokenSigningKeyThumbprint":null,"publisherName":null,"replyUrls":[],"samlMetadataUrl":null,"samlSingleSignOnSettings":null,"servicePrincipalNames":["ddcf38f6-e4f2-42ba-be2d-4f92d125cb87","https://identity.azure.net/2xOSd4H/5Ed0qS3txsA0rVOrggb3pjBiA/87Mq4fae4="],"servicePrincipalType":"ManagedIdentity","signInAudience":null,"tags":[],"tokenEncryptionKeyId":null},{"odata.type":"Microsoft.DirectoryServices.ServicePrincipal","objectType":"ServicePrincipal","objectId":"d9ebd88d-2585-46c3-abcf-4684adbc54e2","deletionTimestamp":null,"accountEnabled":true,"addIns":[],"alternativeNames":["isExplicit=False","/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor"],"appDisplayName":null,"appId":"d3db9ebb-1111-4e86-bc31-9c277b6e45ce","applicationTemplateId":null,"appOwnerTenantId":null,"appRoleAssignmentRequired":false,"appRoles":[],"displayName":"myMonitor","errorUrl":null,"homepage":null,"informationalUrls":null,"keyCredentials":[{"customKeyIdentifier":"8FDB5DD4C7C0919FFDA544B92B53EBD28FED2A32","endDate":"2021-04-14T03:15:00Z","keyId":"4c6b3112-4706-45cf-a438-0f5fc2763c8f","startDate":"2021-01-14T03:15:00Z","type":"AsymmetricX509Cert","usage":"Verify","value":null}],"logoutUrl":null,"notificationEmailAddresses":[],"oauth2Permissions":[],"passwordCredentials":[],"preferredSingleSignOnMode":null,"preferredTokenSigningKeyEndDateTime":null,"preferredTokenSigningKeyThumbprint":null,"publisherName":null,"replyUrls":[],"samlMetadataUrl":null,"samlSingleSignOnSettings":null,"servicePrincipalNames":["d3db9ebb-1111-4e86-bc31-9c277b6e45ce","https://identity.azure.net/ywUPoYAXlJmogIfzF2EifKFrCRNCZ6rmuOFXM01r5jc="],"servicePrincipalType":"ManagedIdentity","signInAudience":null,"tags":[],"tokenEncryptionKeyId":null}]}' - headers: - access-control-allow-origin: - - '*' - cache-control: - - no-cache - content-length: - - '3056' - content-type: - - application/json; odata=minimalmetadata; streaming=true; charset=utf-8 - dataserviceversion: - - 3.0; - date: - - Thu, 14 Jan 2021 03:22:46 GMT - duration: - - '681452' - expires: - - '-1' - ocp-aad-diagnostics-server-name: - - 59OCHzJHCxhhT7FhpZromaJYcrmR37pzbTf89DrTXxI= - ocp-aad-session-key: - - Vqwkh8Ym7nnraZ2hgwEgbJBWxsgmMRefGsbRcMhDOlhjoawt5KdNrNZrgisysLvqWAlU6ofZQ-kgBrrUHb9O_4USHkAEovgNZ2zQbPIki2Mpdg-bj9hobGb5z1Froswl.KDoLTETTs5xbbJrZvNgBU8HbVlogh8c2CBnzjhvMdFI - pragma: - - no-cache - request-id: - - 862ccf5c-fc4e-4c04-8603-08586582c938 - 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: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor delete - Connection: - - keep-alive - Content-Length: - - '0' - ParameterSetName: - - -y --name --resource-group - User-Agent: - - python/3.7.8 (Windows-10-10.0.19041-SP0) msrest/0.6.19 msrest_azure/0.6.4 - azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.17.1 - accept-language: - - en-US - method: DELETE - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/88888888-0000-0000-0000-000000000001?api-version=2020-04-01-preview - response: - body: - string: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/43d0d8ad-25c7-4714-9337-8ba259a9fe05","principalId":"d9ebd88d-2585-46c3-abcf-4684adbc54e2","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-01-14T03:21:23.5847709Z","updatedOn":"2021-01-14T03:21:23.5847709Z","createdBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","updatedBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/88888888-0000-0000-0000-000000000001","type":"Microsoft.Authorization/roleAssignments","name":"88888888-0000-0000-0000-000000000001"}' - headers: - cache-control: - - no-cache - content-length: - - '857' - content-type: - - application/json; charset=utf-8 - date: - - Thu, 14 Jan 2021 03:22:48 GMT - expires: - - '-1' - pragma: - - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-deletes: - - '14999' - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog terms list - Connection: - - keep-alive - User-Agent: - - AZURECLI/2.17.1 azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Datadog/agreements?api-version=2021-03-01 - response: - body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Datadog/agreements/marketplace","name":"marketplace","type":"Microsoft.Datadog/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.Datadog/agreements/datadog","name":"datadog","type":"Microsoft.Datadog/agreements","properties":{"publisher":"Datadog","product":"Datadog","plan":"Datadog","licenseTextLink":"https://www.datadoghq.com/pdf/Datadog_AzureMarketplace.pdf","privacyPolicyLink":"https://www.datadoghq.com/legal/privacy/","retrieveDatetime":null,"signature":"","accepted":false}}]}' - headers: - cache-control: - - no-cache - content-length: - - '899' - content-type: - - application/json; charset=utf-8 - date: - - Thu, 14 Jan 2021 03:22:48 GMT - expires: - - '-1' - pragma: - - no-cache - server: - - Kestrel - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - unknown - Connection: - - keep-alive - User-Agent: - - python/3.7.8 (Windows-10-10.0.19041-SP0) msrest/0.6.19 msrest_azure/0.6.4 - azure-mgmt-resource/10.3.0 Azure-SDK-For-Python AZURECLI/2.17.1 (MSI) - accept-language: - - en-US - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/locations?api-version=2019-11-01 - response: - body: - string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus","name":"eastus","displayName":"East - US","regionalDisplayName":"(US) East US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-79.8164","latitude":"37.3719","physicalLocation":"Virginia","pairedRegion":[{"name":"westus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2","name":"eastus2","displayName":"East - US 2","regionalDisplayName":"(US) East US 2","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-78.3889","latitude":"36.6681","physicalLocation":"Virginia","pairedRegion":[{"name":"centralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus","name":"southcentralus","displayName":"South - Central US","regionalDisplayName":"(US) South Central US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-98.5","latitude":"29.4167","physicalLocation":"Texas","pairedRegion":[{"name":"northcentralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2","name":"westus2","displayName":"West - US 2","regionalDisplayName":"(US) West US 2","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-119.852","latitude":"47.233","physicalLocation":"Washington","pairedRegion":[{"name":"westcentralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westcentralus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiaeast","name":"australiaeast","displayName":"Australia - East","regionalDisplayName":"(Asia Pacific) Australia East","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia - Pacific","longitude":"151.2094","latitude":"-33.86","physicalLocation":"New - South Wales","pairedRegion":[{"name":"australiasoutheast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiasoutheast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasia","name":"southeastasia","displayName":"Southeast - Asia","regionalDisplayName":"(Asia Pacific) Southeast Asia","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia - Pacific","longitude":"103.833","latitude":"1.283","physicalLocation":"Singapore","pairedRegion":[{"name":"eastasia","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasia"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northeurope","name":"northeurope","displayName":"North - Europe","regionalDisplayName":"(Europe) North Europe","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"-6.2597","latitude":"53.3478","physicalLocation":"Ireland","pairedRegion":[{"name":"westeurope","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westeurope"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uksouth","name":"uksouth","displayName":"UK - South","regionalDisplayName":"(Europe) UK South","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"-0.799","latitude":"50.941","physicalLocation":"London","pairedRegion":[{"name":"ukwest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/ukwest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westeurope","name":"westeurope","displayName":"West - Europe","regionalDisplayName":"(Europe) West Europe","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"4.9","latitude":"52.3667","physicalLocation":"Netherlands","pairedRegion":[{"name":"northeurope","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northeurope"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralus","name":"centralus","displayName":"Central - US","regionalDisplayName":"(US) Central US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-93.6208","latitude":"41.5908","physicalLocation":"Iowa","pairedRegion":[{"name":"eastus2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralus","name":"northcentralus","displayName":"North - Central US","regionalDisplayName":"(US) North Central US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-87.6278","latitude":"41.8819","physicalLocation":"Illinois","pairedRegion":[{"name":"southcentralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus","name":"westus","displayName":"West - US","regionalDisplayName":"(US) West US","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"US","longitude":"-122.417","latitude":"37.783","physicalLocation":"California","pairedRegion":[{"name":"eastus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth","name":"southafricanorth","displayName":"South - Africa North","regionalDisplayName":"(Africa) South Africa North","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Africa","longitude":"28.218370","latitude":"-25.731340","physicalLocation":"Johannesburg","pairedRegion":[{"name":"southafricawest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralindia","name":"centralindia","displayName":"Central - India","regionalDisplayName":"(Asia Pacific) Central India","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia - Pacific","longitude":"73.9197","latitude":"18.5822","physicalLocation":"Pune","pairedRegion":[{"name":"southindia","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasia","name":"eastasia","displayName":"East - Asia","regionalDisplayName":"(Asia Pacific) East Asia","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia - Pacific","longitude":"114.188","latitude":"22.267","physicalLocation":"Hong - Kong","pairedRegion":[{"name":"southeastasia","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasia"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast","name":"japaneast","displayName":"Japan - East","regionalDisplayName":"(Asia Pacific) Japan East","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia - Pacific","longitude":"139.77","latitude":"35.68","physicalLocation":"Tokyo, - Saitama","pairedRegion":[{"name":"japanwest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/jioindiawest","name":"jioindiawest","displayName":"JIO - India West","regionalDisplayName":"(Asia Pacific) JIO India West","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia - Pacific","longitude":"70.05773","latitude":"22.470701","physicalLocation":"Jamnagar","pairedRegion":[{"name":"jioindiacentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/jioindiacentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreacentral","name":"koreacentral","displayName":"Korea - Central","regionalDisplayName":"(Asia Pacific) Korea Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Asia - Pacific","longitude":"126.9780","latitude":"37.5665","physicalLocation":"Seoul","pairedRegion":[{"name":"koreasouth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreasouth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadacentral","name":"canadacentral","displayName":"Canada - Central","regionalDisplayName":"(Canada) Canada Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Canada","longitude":"-79.383","latitude":"43.653","physicalLocation":"Toronto","pairedRegion":[{"name":"canadaeast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadaeast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francecentral","name":"francecentral","displayName":"France - Central","regionalDisplayName":"(Europe) France Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"2.3730","latitude":"46.3772","physicalLocation":"Paris","pairedRegion":[{"name":"francesouth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francesouth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanywestcentral","name":"germanywestcentral","displayName":"Germany - West Central","regionalDisplayName":"(Europe) Germany West Central","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"8.682127","latitude":"50.110924","physicalLocation":"Frankfurt","pairedRegion":[{"name":"germanynorth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanynorth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwayeast","name":"norwayeast","displayName":"Norway - East","regionalDisplayName":"(Europe) Norway East","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"10.752245","latitude":"59.913868","physicalLocation":"Norway","pairedRegion":[{"name":"norwaywest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwaywest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandnorth","name":"switzerlandnorth","displayName":"Switzerland - North","regionalDisplayName":"(Europe) Switzerland North","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Europe","longitude":"8.564572","latitude":"47.451542","physicalLocation":"Zurich","pairedRegion":[{"name":"switzerlandwest","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandwest"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaenorth","name":"uaenorth","displayName":"UAE - North","regionalDisplayName":"(Middle East) UAE North","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"Middle - East","longitude":"55.316666","latitude":"25.266666","physicalLocation":"Dubai","pairedRegion":[{"name":"uaecentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaecentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsouth","name":"brazilsouth","displayName":"Brazil - South","regionalDisplayName":"(South America) Brazil South","metadata":{"regionType":"Physical","regionCategory":"Recommended","geographyGroup":"South - America","longitude":"-46.633","latitude":"-23.55","physicalLocation":"Sao - Paulo State","pairedRegion":[{"name":"southcentralus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralusstage","name":"centralusstage","displayName":"Central - US (Stage)","regionalDisplayName":"(US) Central US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastusstage","name":"eastusstage","displayName":"East - US (Stage)","regionalDisplayName":"(US) East US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2stage","name":"eastus2stage","displayName":"East - US 2 (Stage)","regionalDisplayName":"(US) East US 2 (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/northcentralusstage","name":"northcentralusstage","displayName":"North - Central US (Stage)","regionalDisplayName":"(US) North Central US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southcentralusstage","name":"southcentralusstage","displayName":"South - Central US (Stage)","regionalDisplayName":"(US) South Central US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westusstage","name":"westusstage","displayName":"West - US (Stage)","regionalDisplayName":"(US) West US (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2stage","name":"westus2stage","displayName":"West - US 2 (Stage)","regionalDisplayName":"(US) West US 2 (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"US"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/asia","name":"asia","displayName":"Asia","regionalDisplayName":"Asia","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/asiapacific","name":"asiapacific","displayName":"Asia - Pacific","regionalDisplayName":"Asia Pacific","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australia","name":"australia","displayName":"Australia","regionalDisplayName":"Australia","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazil","name":"brazil","displayName":"Brazil","regionalDisplayName":"Brazil","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canada","name":"canada","displayName":"Canada","regionalDisplayName":"Canada","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/europe","name":"europe","displayName":"Europe","regionalDisplayName":"Europe","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/global","name":"global","displayName":"Global","regionalDisplayName":"Global","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/india","name":"india","displayName":"India","regionalDisplayName":"India","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japan","name":"japan","displayName":"Japan","regionalDisplayName":"Japan","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uk","name":"uk","displayName":"United - Kingdom","regionalDisplayName":"United Kingdom","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/unitedstates","name":"unitedstates","displayName":"United - States","regionalDisplayName":"United States","metadata":{"regionType":"Logical","regionCategory":"Other"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastasiastage","name":"eastasiastage","displayName":"East - Asia (Stage)","regionalDisplayName":"(Asia Pacific) East Asia (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"Asia - Pacific"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southeastasiastage","name":"southeastasiastage","displayName":"Southeast - Asia (Stage)","regionalDisplayName":"(Asia Pacific) Southeast Asia (Stage)","metadata":{"regionType":"Logical","regionCategory":"Other","geographyGroup":"Asia - Pacific"}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap","name":"centraluseuap","displayName":"Central - US EUAP","regionalDisplayName":"(US) Central US EUAP","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"US","longitude":"-93.6208","latitude":"41.5908","pairedRegion":[{"name":"eastus2euap","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus2euap","name":"eastus2euap","displayName":"East - US 2 EUAP","regionalDisplayName":"(US) East US 2 EUAP","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"US","longitude":"-78.3889","latitude":"36.6681","pairedRegion":[{"name":"centraluseuap","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centraluseuap"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westcentralus","name":"westcentralus","displayName":"West - Central US","regionalDisplayName":"(US) West Central US","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"US","longitude":"-110.234","latitude":"40.890","physicalLocation":"Wyoming","pairedRegion":[{"name":"westus2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus2"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westus3","name":"westus3","displayName":"West - US 3","regionalDisplayName":"(US) West US 3","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"US","longitude":"-112.074036","latitude":"33.448376","physicalLocation":"Phoenix","pairedRegion":[{"name":"eastus","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/eastus"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricawest","name":"southafricawest","displayName":"South - Africa West","regionalDisplayName":"(Africa) South Africa West","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Africa","longitude":"18.843266","latitude":"-34.075691","physicalLocation":"Cape - Town","pairedRegion":[{"name":"southafricanorth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southafricanorth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral","name":"australiacentral","displayName":"Australia - Central","regionalDisplayName":"(Asia Pacific) Australia Central","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia - Pacific","longitude":"149.1244","latitude":"-35.3075","physicalLocation":"Canberra","pairedRegion":[{"name":"australiacentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2","name":"australiacentral2","displayName":"Australia - Central 2","regionalDisplayName":"(Asia Pacific) Australia Central 2","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia - Pacific","longitude":"149.1244","latitude":"-35.3075","physicalLocation":"Canberra","pairedRegion":[{"name":"australiacentral2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiacentral2"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiasoutheast","name":"australiasoutheast","displayName":"Australia - Southeast","regionalDisplayName":"(Asia Pacific) Australia Southeast","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia - Pacific","longitude":"144.9631","latitude":"-37.8136","physicalLocation":"Victoria","pairedRegion":[{"name":"australiaeast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/australiaeast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japanwest","name":"japanwest","displayName":"Japan - West","regionalDisplayName":"(Asia Pacific) Japan West","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia - Pacific","longitude":"135.5022","latitude":"34.6939","physicalLocation":"Osaka","pairedRegion":[{"name":"japaneast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/japaneast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreasouth","name":"koreasouth","displayName":"Korea - South","regionalDisplayName":"(Asia Pacific) Korea South","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia - Pacific","longitude":"129.0756","latitude":"35.1796","physicalLocation":"Busan","pairedRegion":[{"name":"koreacentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/koreacentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia","name":"southindia","displayName":"South - India","regionalDisplayName":"(Asia Pacific) South India","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia - Pacific","longitude":"80.1636","latitude":"12.9822","physicalLocation":"Chennai","pairedRegion":[{"name":"centralindia","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/centralindia"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/westindia","name":"westindia","displayName":"West - India","regionalDisplayName":"(Asia Pacific) West India","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Asia - Pacific","longitude":"72.868","latitude":"19.088","physicalLocation":"Mumbai","pairedRegion":[{"name":"southindia","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/southindia"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadaeast","name":"canadaeast","displayName":"Canada - East","regionalDisplayName":"(Canada) Canada East","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Canada","longitude":"-71.217","latitude":"46.817","physicalLocation":"Quebec","pairedRegion":[{"name":"canadacentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/canadacentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francesouth","name":"francesouth","displayName":"France - South","regionalDisplayName":"(Europe) France South","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Europe","longitude":"2.1972","latitude":"43.8345","physicalLocation":"Marseille","pairedRegion":[{"name":"francecentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/francecentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanynorth","name":"germanynorth","displayName":"Germany - North","regionalDisplayName":"(Europe) Germany North","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Europe","longitude":"8.806422","latitude":"53.073635","physicalLocation":"Berlin","pairedRegion":[{"name":"germanywestcentral","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/germanywestcentral"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwaywest","name":"norwaywest","displayName":"Norway - West","regionalDisplayName":"(Europe) Norway West","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Europe","longitude":"5.733107","latitude":"58.969975","physicalLocation":"Norway","pairedRegion":[{"name":"norwayeast","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/norwayeast"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandwest","name":"switzerlandwest","displayName":"Switzerland - West","regionalDisplayName":"(Europe) Switzerland West","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Europe","longitude":"6.143158","latitude":"46.204391","physicalLocation":"Geneva","pairedRegion":[{"name":"switzerlandnorth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/switzerlandnorth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/ukwest","name":"ukwest","displayName":"UK - West","regionalDisplayName":"(Europe) UK West","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Europe","longitude":"-3.084","latitude":"53.427","physicalLocation":"Cardiff","pairedRegion":[{"name":"uksouth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uksouth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaecentral","name":"uaecentral","displayName":"UAE - Central","regionalDisplayName":"(Middle East) UAE Central","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"Middle - East","longitude":"54.366669","latitude":"24.466667","physicalLocation":"Abu - Dhabi","pairedRegion":[{"name":"uaenorth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/uaenorth"}]}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsoutheast","name":"brazilsoutheast","displayName":"Brazil - Southeast","regionalDisplayName":"(South America) Brazil Southeast","metadata":{"regionType":"Physical","regionCategory":"Other","geographyGroup":"South - America","longitude":"-43.2075","latitude":"-22.90278","physicalLocation":"Rio","pairedRegion":[{"name":"brazilsouth","id":"/subscriptions/00000000-0000-0000-0000-000000000000/locations/brazilsouth"}]}}]}' - headers: - cache-control: - - no-cache - content-length: - - '26028' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 27 Mar 2021 00:45:45 GMT - expires: - - '-1' - pragma: - - no-cache - strict-transport-security: - - max-age=31536000; includeSubDomains - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: '{"sku": {"name": "Linked"}, "properties": {"monitoringStatus": "Enabled", - "datadogOrganizationProperties": {"apiKey": "", - "applicationKey": ""}, "userInfo": {"name": - "Alice", "emailAddress": "alice@microsoft.com", "phoneNumber": "123-456-7890"}}, - "identity": {"type": "SystemAssigned"}, "tags": {"Environment": "Dev"}, "location": - "eastus2euap"}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor create - Connection: - - keep-alive - Content-Length: - - '417' - Content-Type: - - application/json - ParameterSetName: - - --name --sku-name --datadog-organization-properties --location --type --user-info - --tags --resource-group - User-Agent: - - AZURECLI/2.17.1 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor?api-version=2021-03-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","name":"myMonitor","type":"microsoft.datadog/monitors","sku":{"name":"Linked"},"location":"eastus2euap","tags":{"Environment":"Dev"},"systemData":{"createdBy":"limgu@microsoft.com","createdByType":"User","createdAt":"2021-03-27T00:45:46.8072643Z","lastModifiedBy":"limgu@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2021-03-27T00:45:46.8072643Z"},"identity":{"principalId":"1c358b6b-d136-4835-8cb2-ba3245c00a5e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","type":"SystemAssigned"},"properties":{"provisioningState":"Accepted","monitoringStatus":"Enabled","marketplaceSubscriptionStatus":"Provisioning","datadogOrganizationProperties":{"name":"myMonitor","id":null,"linkingAuthCode":null,"linkingClientId":null,"redirectUri":null,"apiKey":null,"applicationKey":null,"enterpriseAppId":null},"userInfo":null,"liftrResourceCategory":"MonitorLogs","liftrResourcePreference":0}}' - headers: - azure-asyncoperation: - - https://management.azure.com/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/c94d288c-892f-48d2-9f30-b38ae92caee2?api-version=2021-03-01 - cache-control: - - no-cache - content-length: - - '1092' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 27 Mar 2021 00:45:49 GMT - etag: - - '"00008997-0000-3400-0000-605e803d0000"' - expires: - - '-1' - location: - - https://management.azure.com/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/c94d288c-892f-48d2-9f30-b38ae92caee2?api-version=2021-03-01 - pragma: - - no-cache - request-context: - - appId=cid-v1:0b211baa-00db-496b-b625-0e3961b2c5bd - strict-transport-security: - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - x-ms-providerhub-traffic: - - 'True' - x-ms-ratelimit-remaining-subscription-writes: - - '1199' - status: - code: 201 - message: Created -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor create - Connection: - - keep-alive - ParameterSetName: - - --name --sku-name --datadog-organization-properties --location --type --user-info - --tags --resource-group - User-Agent: - - AZURECLI/2.17.1 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/c94d288c-892f-48d2-9f30-b38ae92caee2?api-version=2021-03-01 - response: - body: - string: '{"id":"/providers/Microsoft.Datadog/locations/EASTUS2EUAP/operationStatuses/c94d288c-892f-48d2-9f30-b38ae92caee2","name":"c94d288c-892f-48d2-9f30-b38ae92caee2","resourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","status":"Succeeded","startTime":"2021-03-27T00:45:48.4319132Z","endTime":"2021-03-27T00:46:00.8010035Z","error":{},"properties":null}' - headers: - cache-control: - - no-cache - content-length: - - '499' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 27 Mar 2021 00:46:19 GMT - etag: - - '"02003ee3-0000-3400-0000-605e80480000"' - expires: - - '-1' - pragma: - - no-cache - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - status: - code: 200 - message: OK -- request: - body: null - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor create - Connection: - - keep-alive - ParameterSetName: - - --name --sku-name --datadog-organization-properties --location --type --user-info - --tags --resource-group - User-Agent: - - AZURECLI/2.17.1 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor?api-version=2021-03-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","name":"myMonitor","type":"microsoft.datadog/monitors","sku":{"name":"Linked"},"location":"eastus2euap","tags":{"Environment":"Dev"},"systemData":{"createdBy":"limgu@microsoft.com","createdByType":"User","createdAt":"2021-03-27T00:45:46.8072643Z","lastModifiedBy":"ae11f5fb-c627-4eec-b4a0-f7b5969426e5","lastModifiedByType":"Application","lastModifiedAt":"2021-03-27T00:45:59.5597746Z"},"identity":{"principalId":"1c358b6b-d136-4835-8cb2-ba3245c00a5e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","type":"SystemAssigned"},"properties":{"provisioningState":"Succeeded","monitoringStatus":"Enabled","marketplaceSubscriptionStatus":"Active","datadogOrganizationProperties":{"name":"test325212","id":"ndvplqultx44t044","linkingAuthCode":null,"linkingClientId":null,"redirectUri":null,"apiKey":null,"applicationKey":null,"enterpriseAppId":null},"userInfo":null,"liftrResourceCategory":"MonitorLogs","liftrResourcePreference":0}}' - headers: - cache-control: - - no-cache - content-length: - - '1126' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 27 Mar 2021 00:46:19 GMT - etag: - - '"00008c97-0000-3400-0000-605e80480000"' - expires: - - '-1' - pragma: - - no-cache - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-ms-providerhub-traffic: - - 'True' - status: - code: 200 - message: OK -- request: - body: '{"properties": {"roleDefinitionId": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/43d0d8ad-25c7-4714-9337-8ba259a9fe05", - "principalId": "1c358b6b-d136-4835-8cb2-ba3245c00a5e", "principalType": "ServicePrincipal"}}' - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor create - Connection: - - keep-alive - Content-Length: - - '270' - Content-Type: - - application/json; charset=utf-8 - ParameterSetName: - - --name --sku-name --datadog-organization-properties --location --type --user-info - --tags --resource-group - User-Agent: - - python/3.7.8 (Windows-10-10.0.19041-SP0) msrest/0.6.19 msrest_azure/0.6.4 - azure-mgmt-authorization/0.61.0 Azure-SDK-For-Python AZURECLI/2.17.1 (MSI) - accept-language: - - en-US - method: PUT - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/88888888-0000-0000-0000-000000000002?api-version=2020-04-01-preview - response: - body: - string: '{"properties":{"roleDefinitionId":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleDefinitions/43d0d8ad-25c7-4714-9337-8ba259a9fe05","principalId":"1c358b6b-d136-4835-8cb2-ba3245c00a5e","principalType":"ServicePrincipal","scope":"/subscriptions/00000000-0000-0000-0000-000000000000","condition":null,"conditionVersion":null,"createdOn":"2021-03-27T00:46:20.6463323Z","updatedOn":"2021-03-27T00:46:20.9063332Z","createdBy":null,"updatedBy":"4290ae1b-4f92-4dc9-81fe-fab805a38536","delegatedManagedIdentityResourceId":null,"description":null},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/roleAssignments/88888888-0000-0000-0000-000000000001","type":"Microsoft.Authorization/roleAssignments","name":"88888888-0000-0000-0000-000000000001"}' - headers: - cache-control: - - no-cache - content-length: - - '823' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 27 Mar 2021 00:46:21 GMT - expires: - - '-1' - pragma: - - no-cache - set-cookie: - - x-ms-gateway-slice=Production; path=/; secure; samesite=none; httponly - strict-transport-security: - - max-age=31536000; includeSubDomains - x-content-type-options: - - nosniff - x-ms-ratelimit-remaining-subscription-writes: - - '1199' - status: - code: 201 - message: Created -- request: - body: null - headers: - Accept: - - application/json - Accept-Encoding: - - gzip, deflate - CommandName: - - datadog monitor wait - Connection: - - keep-alive - ParameterSetName: - - --created --name --resource-group - User-Agent: - - AZURECLI/2.17.1 (MSI) azsdk-python-microsoftdatadogclient/unknown Python/3.7.8 - (Windows-10-10.0.19041-SP0) - method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor?api-version=2021-03-01 - response: - body: - string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest000001/providers/Microsoft.Datadog/monitors/myMonitor","name":"myMonitor","type":"microsoft.datadog/monitors","sku":{"name":"Linked"},"location":"eastus2euap","tags":{"Environment":"Dev"},"systemData":{"createdBy":"limgu@microsoft.com","createdByType":"User","createdAt":"2021-03-27T00:45:46.8072643Z","lastModifiedBy":"ae11f5fb-c627-4eec-b4a0-f7b5969426e5","lastModifiedByType":"Application","lastModifiedAt":"2021-03-27T00:45:59.5597746Z"},"identity":{"principalId":"1c358b6b-d136-4835-8cb2-ba3245c00a5e","tenantId":"72f988bf-86f1-41af-91ab-2d7cd011db47","type":"SystemAssigned"},"properties":{"provisioningState":"Succeeded","monitoringStatus":"Enabled","marketplaceSubscriptionStatus":"Active","datadogOrganizationProperties":{"name":"test325212","id":"ndvplqultx44t044","linkingAuthCode":null,"linkingClientId":null,"redirectUri":null,"apiKey":null,"applicationKey":null,"enterpriseAppId":null},"userInfo":null,"liftrResourceCategory":"MonitorLogs","liftrResourcePreference":0}}' - headers: - cache-control: - - no-cache - content-length: - - '1126' - content-type: - - application/json; charset=utf-8 - date: - - Sat, 27 Mar 2021 00:46:22 GMT - etag: - - '"00008c97-0000-3400-0000-605e80480000"' - expires: - - '-1' - pragma: - - no-cache - strict-transport-security: - - max-age=31536000; includeSubDomains - transfer-encoding: - - chunked - vary: - - Accept-Encoding - x-content-type-options: - - nosniff - x-ms-providerhub-traffic: - - 'True' - status: - code: 200 - message: OK -version: 1 \ No newline at end of file diff --git a/src/datadog/azext_datadog/tests/latest/recordings/test_datadog_terms.yaml b/src/datadog/azext_datadog/tests/latest/recordings/test_datadog_terms.yaml new file mode 100644 index 00000000000..fdd72ff1208 --- /dev/null +++ b/src/datadog/azext_datadog/tests/latest/recordings/test_datadog_terms.yaml @@ -0,0 +1,54 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - datadog terms list + Connection: + - keep-alive + User-Agent: + - AZURECLI/2.73.0 azsdk-python-core/1.31.0 Python/3.12.10 (Windows-11-10.0.26100-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Datadog/agreements?api-version=2021-03-01 + response: + body: + string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Datadog/agreements/marketplace","name":"marketplace","type":"Microsoft.Datadog/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","signature":"","accepted":false}},{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Datadog/agreements/datadog","name":"datadog","type":"Microsoft.Datadog/agreements","properties":{"publisher":"Datadog","product":"Datadog","plan":"Datadog","licenseTextLink":"https://www.datadoghq.com/pdf/Datadog_AzureMarketplace.pdf","privacyPolicyLink":"https://www.datadoghq.com/legal/privacy/","signature":"","accepted":false}}]}' + headers: + cache-control: + - no-cache + content-length: + - '851' + content-type: + - application/json; charset=utf-8 + date: + - Mon, 26 May 2025 05:57:58 GMT + expires: + - '-1' + mise-correlation-id: + - 3a2ff6d9-b32d-400d-937c-d5823358e0ba + pragma: + - no-cache + request-context: + - appId=cid-v1:0b211baa-00db-496b-b625-0e3961b2c5bd + strict-transport-security: + - max-age=31536000; includeSubDomains + x-cache: + - CONFIG_NOCACHE + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=888d76fa-54b2-4ced-8ee5-aac1585adee7,objectId=eecc404a-5cdc-49fe-a883-1119cc8d2ff6/westindia/edb1849e-f999-4403-ba0b-1e428cac62c5 + x-ms-providerhub-traffic: + - 'True' + x-ms-ratelimit-remaining-subscription-global-reads: + - '3749' + x-msedge-ref: + - 'Ref A: D02B7F859DD842CC8304F41D4FCBDF97 Ref B: MAA201060515047 Ref C: 2025-05-26T05:57:54Z' + status: + code: 200 + message: OK +version: 1 diff --git a/src/datadog/azext_datadog/tests/latest/test_datadog.py b/src/datadog/azext_datadog/tests/latest/test_datadog.py new file mode 100644 index 00000000000..bb0b48e89d8 --- /dev/null +++ b/src/datadog/azext_datadog/tests/latest/test_datadog.py @@ -0,0 +1,80 @@ +# -------------------------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools +# -------------------------------------------------------------------------------------------- + +import unittest +from azure.cli.testsdk import * + +# resource creation is failing due to which tests whave been skipped. Will be fixed in the next release. +class DatadogScenario(ScenarioTest): + # @ResourceGroupPreparer(name_prefix='cli_test_datadog_monitor', location='westus2') + # def test_datadog_monitor(self, resource_group): + # self.kwargs.update({ + # 'monitor': self.create_random_name('monitor', 15), + # }) + # self.cmd('datadog monitor create --name {monitor} --resource-group {rg} --sku {{name:payg_v3_Monthly@TIDgmz7xq9ge3py}} --identity {{type:SystemAssigned}} --user-info {{name:Alice,email-address:alice@microsoft.com}}') + # self.cmd('datadog monitor wait --created --name {monitor} --resource-group {rg}') + # self.cmd('datadog monitor show --name {monitor} --resource-group {rg}') + # self.cmd('datadog monitor list --resource-group {rg}') + # self.cmd('datadog monitor update --name {monitor} --resource-group {rg} --tags Environment="Dev2"') + # self.cmd('datadog monitor get-default-keys --name {monitor} --resource-group {rg}') + # self.cmd('datadog monitor list-api-keys --name {monitor} --resource-group {rg}') + # self.cmd('datadog monitor set-default-keys --name {monitor} --resource-group {rg} --api-key "{name:apiKey}" --key "1111111111111111aaaaaaaaaaaaaaaa"') + # self.cmd('datadog monitor list-host --name {monitor} --resource-group {rg}') + # self.cmd('datadog monitor list-linked-resource --name {monitor} --resource-group {rg}') + # self.cmd('datadog monitor list-monitored-resource --name {monitor} --resource-group {rg}') + # self.cmd('datadog monitor refresh-set-password-link --name {monitor} --resource-group {rg}') + # self.cmd('datadog monitor delete --name {monitor} --resource-group {rg}') + # self.cmd('datadog monitor wait --deleted --name {monitor} --resource-group {rg}') + + # @ResourceGroupPreparer(name_prefix='cli_test_datadog_monitor', location='eastus') + # def test_datadog_monitor_single_sign_on_configurations(self, resource_group): + # self.kwargs.update({ + # 'monitor': self.create_random_name('monitor', 15), + # }) + # self.cmd('datadog monitor create --name {monitor} --resource-group {rg} --sku {{name:payg_v3_Monthly@TIDgmz7xq9ge3py}} --identity {{type:SystemAssigned}} --user-info {{name:Alice,email-address:alice@microsoft.com}}') + # self.cmd('datadog sso-config create ' + # '--configuration-name "default" ' + # '--monitor-name "{myMonitor}" ' + # '--properties enterprise-app-id="ac754169-3489-42ae-bd06-8be89db12e58" single-sign-on-state="Enable" ' + # '--resource-group "{rg}"') + # self.cmd('datadog sso-config show ' + # '--configuration-name "default" ' + # '--monitor-name "{myMonitor}" ' + # '--resource-group "{rg}"') + # self.cmd('datadog sso-config list ' + # '--monitor-name "{myMonitor}" ' + # '--resource-group "{rg}"') + + # @ResourceGroupPreparer(name_prefix='cli_test_datadog_monitor', location='eastus') + # def test_datadog_monitor_tag_rule(self, resource_group): + # self.kwargs.update({ + # 'monitor': self.create_random_name('monitor', 15), + # }) + # self.cmd('datadog monitor create --name {monitor} --resource-group {rg} --sku {{name:payg_v3_Monthly@TIDgmz7xq9ge3py}} --identity {{type:SystemAssigned}} --user-info {{name:Alice,email-address:alice@microsoft.com}}') + # self.cmd('datadog tag-rule create ' + # '--monitor-name "{myMonitor}" ' + # '--log-rules-filtering-tags name="Environment" action="Include" value="Prod" ' + # '--log-rules-filtering-tags name="Environment" action="Exclude" value="Dev" ' + # '--send-aad-logs false ' + # '--send-resource-logs true ' + # '--send-subscription-logs true ' + # '--resource-group "{rg}" ' + # '--rule-set-name "default"') + # self.cmd('datadog tag-rule show ' + # '--monitor-name "{myMonitor}" ' + # '--resource-group "{rg}" ' + # '--rule-set-name "default"') + # self.cmd('datadog tag-rule list ' + # '--monitor-name "{myMonitor}" ' + # '--resource-group "{rg}"') + + @ResourceGroupPreparer(name_prefix='cli_test_datadog_monitor', location='eastus') + def test_datadog_terms(self, resource_group): + self.kwargs.update({ + 'monitor': self.create_random_name('monitor', 15), + }) + self.cmd('datadog terms list') diff --git a/src/datadog/azext_datadog/tests/latest/test_datadog_scenario.py b/src/datadog/azext_datadog/tests/old_test_datadog_scenario.py similarity index 99% rename from src/datadog/azext_datadog/tests/latest/test_datadog_scenario.py rename to src/datadog/azext_datadog/tests/old_test_datadog_scenario.py index cd578e0ee8e..faafb92afa0 100644 --- a/src/datadog/azext_datadog/tests/latest/test_datadog_scenario.py +++ b/src/datadog/azext_datadog/tests/old_test_datadog_scenario.py @@ -23,7 +23,7 @@ def setup(): pass - +# Please remove this file after new CLI release. This file is only for reference. # EXAMPLE: /Monitors/put/Monitors_Create @try_manual def step__monitors_put_monitors_create(test): diff --git a/src/datadog/azext_datadog/vendored_sdks/__init__.py b/src/datadog/azext_datadog/vendored_sdks/__init__.py deleted file mode 100644 index c9cfdc73e77..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/__init__.py +++ /dev/null @@ -1,12 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for -# license information. -# -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. -# -------------------------------------------------------------------------- - -__path__ = __import__('pkgutil').extend_path(__path__, __name__) diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/__init__.py b/src/datadog/azext_datadog/vendored_sdks/datadog/__init__.py deleted file mode 100644 index 4169586605e..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/__init__.py +++ /dev/null @@ -1,16 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from ._microsoft_datadog_client import MicrosoftDatadogClient -__all__ = ['MicrosoftDatadogClient'] - -try: - from ._patch import patch_sdk # type: ignore - patch_sdk() -except ImportError: - pass diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/_configuration.py b/src/datadog/azext_datadog/vendored_sdks/datadog/_configuration.py deleted file mode 100644 index 3b844c5adca..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/_configuration.py +++ /dev/null @@ -1,70 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from typing import TYPE_CHECKING - -from azure.core.configuration import Configuration -from azure.core.pipeline import policies -from azure.mgmt.core.policies import ARMHttpLoggingPolicy - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any - - from azure.core.credentials import TokenCredential - -VERSION = "unknown" - -class MicrosoftDatadogClientConfiguration(Configuration): - """Configuration for MicrosoftDatadogClient. - - Note that all parameters used to create this instance are saved as instance - attributes. - - :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials.TokenCredential - :param subscription_id: The ID of the target subscription. - :type subscription_id: str - """ - - def __init__( - self, - credential, # type: "TokenCredential" - subscription_id, # type: str - **kwargs # type: Any - ): - # type: (...) -> None - if credential is None: - raise ValueError("Parameter 'credential' must not be None.") - if subscription_id is None: - raise ValueError("Parameter 'subscription_id' must not be None.") - super(MicrosoftDatadogClientConfiguration, self).__init__(**kwargs) - - self.credential = credential - self.subscription_id = subscription_id - self.api_version = "2021-03-01" - self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) - kwargs.setdefault('sdk_moniker', 'microsoftdatadogclient/{}'.format(VERSION)) - self._configure(**kwargs) - - def _configure( - self, - **kwargs # type: Any - ): - # type: (...) -> None - self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) - self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) - self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) - self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) - self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) - self.retry_policy = kwargs.get('retry_policy') or policies.RetryPolicy(**kwargs) - self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) - self.redirect_policy = kwargs.get('redirect_policy') or policies.RedirectPolicy(**kwargs) - self.authentication_policy = kwargs.get('authentication_policy') - if self.credential and not self.authentication_policy: - self.authentication_policy = policies.BearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/_microsoft_datadog_client.py b/src/datadog/azext_datadog/vendored_sdks/datadog/_microsoft_datadog_client.py deleted file mode 100644 index d557b59868e..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/_microsoft_datadog_client.py +++ /dev/null @@ -1,89 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from typing import TYPE_CHECKING - -from azure.mgmt.core import ARMPipelineClient -from msrest import Deserializer, Serializer - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Optional - - from azure.core.credentials import TokenCredential - -from ._configuration import MicrosoftDatadogClientConfiguration -from .operations import MarketplaceAgreementsOperations -from .operations import MonitorsOperations -from .operations import Operations -from .operations import TagRulesOperations -from .operations import SingleSignOnConfigurationsOperations -from . import models - - -class MicrosoftDatadogClient(object): - """MicrosoftDatadogClient. - - :ivar marketplace_agreements: MarketplaceAgreementsOperations operations - :vartype marketplace_agreements: microsoft_datadog_client.operations.MarketplaceAgreementsOperations - :ivar monitors: MonitorsOperations operations - :vartype monitors: microsoft_datadog_client.operations.MonitorsOperations - :ivar operations: Operations operations - :vartype operations: microsoft_datadog_client.operations.Operations - :ivar tag_rules: TagRulesOperations operations - :vartype tag_rules: microsoft_datadog_client.operations.TagRulesOperations - :ivar single_sign_on_configurations: SingleSignOnConfigurationsOperations operations - :vartype single_sign_on_configurations: microsoft_datadog_client.operations.SingleSignOnConfigurationsOperations - :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials.TokenCredential - :param subscription_id: The ID of the target subscription. - :type subscription_id: str - :param str base_url: Service URL - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - """ - - def __init__( - self, - credential, # type: "TokenCredential" - subscription_id, # type: str - base_url=None, # type: Optional[str] - **kwargs # type: Any - ): - # type: (...) -> None - if not base_url: - base_url = 'https://management.azure.com' - self._config = MicrosoftDatadogClientConfiguration(credential, subscription_id, **kwargs) - self._client = ARMPipelineClient(base_url=base_url, config=self._config, **kwargs) - - client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} - self._serialize = Serializer(client_models) - self._deserialize = Deserializer(client_models) - - self.marketplace_agreements = MarketplaceAgreementsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.monitors = MonitorsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.operations = Operations( - self._client, self._config, self._serialize, self._deserialize) - self.tag_rules = TagRulesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.single_sign_on_configurations = SingleSignOnConfigurationsOperations( - self._client, self._config, self._serialize, self._deserialize) - - def close(self): - # type: () -> None - self._client.close() - - def __enter__(self): - # type: () -> MicrosoftDatadogClient - self._client.__enter__() - return self - - def __exit__(self, *exc_details): - # type: (Any) -> None - self._client.__exit__(*exc_details) diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/_configuration.py b/src/datadog/azext_datadog/vendored_sdks/datadog/aio/_configuration.py deleted file mode 100644 index f4e5b7f1f0d..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/_configuration.py +++ /dev/null @@ -1,66 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from typing import Any, TYPE_CHECKING - -from azure.core.configuration import Configuration -from azure.core.pipeline import policies -from azure.mgmt.core.policies import ARMHttpLoggingPolicy - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from azure.core.credentials_async import AsyncTokenCredential - -VERSION = "unknown" - -class MicrosoftDatadogClientConfiguration(Configuration): - """Configuration for MicrosoftDatadogClient. - - Note that all parameters used to create this instance are saved as instance - attributes. - - :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials_async.AsyncTokenCredential - :param subscription_id: The ID of the target subscription. - :type subscription_id: str - """ - - def __init__( - self, - credential: "AsyncTokenCredential", - subscription_id: str, - **kwargs: Any - ) -> None: - if credential is None: - raise ValueError("Parameter 'credential' must not be None.") - if subscription_id is None: - raise ValueError("Parameter 'subscription_id' must not be None.") - super(MicrosoftDatadogClientConfiguration, self).__init__(**kwargs) - - self.credential = credential - self.subscription_id = subscription_id - self.api_version = "2021-03-01" - self.credential_scopes = kwargs.pop('credential_scopes', ['https://management.azure.com/.default']) - kwargs.setdefault('sdk_moniker', 'microsoftdatadogclient/{}'.format(VERSION)) - self._configure(**kwargs) - - def _configure( - self, - **kwargs: Any - ) -> None: - self.user_agent_policy = kwargs.get('user_agent_policy') or policies.UserAgentPolicy(**kwargs) - self.headers_policy = kwargs.get('headers_policy') or policies.HeadersPolicy(**kwargs) - self.proxy_policy = kwargs.get('proxy_policy') or policies.ProxyPolicy(**kwargs) - self.logging_policy = kwargs.get('logging_policy') or policies.NetworkTraceLoggingPolicy(**kwargs) - self.http_logging_policy = kwargs.get('http_logging_policy') or ARMHttpLoggingPolicy(**kwargs) - self.retry_policy = kwargs.get('retry_policy') or policies.AsyncRetryPolicy(**kwargs) - self.custom_hook_policy = kwargs.get('custom_hook_policy') or policies.CustomHookPolicy(**kwargs) - self.redirect_policy = kwargs.get('redirect_policy') or policies.AsyncRedirectPolicy(**kwargs) - self.authentication_policy = kwargs.get('authentication_policy') - if self.credential and not self.authentication_policy: - self.authentication_policy = policies.AsyncBearerTokenCredentialPolicy(self.credential, *self.credential_scopes, **kwargs) diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/_microsoft_datadog_client.py b/src/datadog/azext_datadog/vendored_sdks/datadog/aio/_microsoft_datadog_client.py deleted file mode 100644 index c378a32e2f2..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/_microsoft_datadog_client.py +++ /dev/null @@ -1,83 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from typing import Any, Optional, TYPE_CHECKING - -from azure.mgmt.core import AsyncARMPipelineClient -from msrest import Deserializer, Serializer - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from azure.core.credentials_async import AsyncTokenCredential - -from ._configuration import MicrosoftDatadogClientConfiguration -from .operations import MarketplaceAgreementsOperations -from .operations import MonitorsOperations -from .operations import Operations -from .operations import TagRulesOperations -from .operations import SingleSignOnConfigurationsOperations -from .. import models - - -class MicrosoftDatadogClient(object): - """MicrosoftDatadogClient. - - :ivar marketplace_agreements: MarketplaceAgreementsOperations operations - :vartype marketplace_agreements: microsoft_datadog_client.aio.operations.MarketplaceAgreementsOperations - :ivar monitors: MonitorsOperations operations - :vartype monitors: microsoft_datadog_client.aio.operations.MonitorsOperations - :ivar operations: Operations operations - :vartype operations: microsoft_datadog_client.aio.operations.Operations - :ivar tag_rules: TagRulesOperations operations - :vartype tag_rules: microsoft_datadog_client.aio.operations.TagRulesOperations - :ivar single_sign_on_configurations: SingleSignOnConfigurationsOperations operations - :vartype single_sign_on_configurations: microsoft_datadog_client.aio.operations.SingleSignOnConfigurationsOperations - :param credential: Credential needed for the client to connect to Azure. - :type credential: ~azure.core.credentials_async.AsyncTokenCredential - :param subscription_id: The ID of the target subscription. - :type subscription_id: str - :param str base_url: Service URL - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - """ - - def __init__( - self, - credential: "AsyncTokenCredential", - subscription_id: str, - base_url: Optional[str] = None, - **kwargs: Any - ) -> None: - if not base_url: - base_url = 'https://management.azure.com' - self._config = MicrosoftDatadogClientConfiguration(credential, subscription_id, **kwargs) - self._client = AsyncARMPipelineClient(base_url=base_url, config=self._config, **kwargs) - - client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)} - self._serialize = Serializer(client_models) - self._deserialize = Deserializer(client_models) - - self.marketplace_agreements = MarketplaceAgreementsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.monitors = MonitorsOperations( - self._client, self._config, self._serialize, self._deserialize) - self.operations = Operations( - self._client, self._config, self._serialize, self._deserialize) - self.tag_rules = TagRulesOperations( - self._client, self._config, self._serialize, self._deserialize) - self.single_sign_on_configurations = SingleSignOnConfigurationsOperations( - self._client, self._config, self._serialize, self._deserialize) - - async def close(self) -> None: - await self._client.close() - - async def __aenter__(self) -> "MicrosoftDatadogClient": - await self._client.__aenter__() - return self - - async def __aexit__(self, *exc_details) -> None: - await self._client.__aexit__(*exc_details) diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/__init__.py b/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/__init__.py deleted file mode 100644 index b2edc8eaf2d..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/__init__.py +++ /dev/null @@ -1,21 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from ._marketplace_agreements_operations import MarketplaceAgreementsOperations -from ._monitors_operations import MonitorsOperations -from ._operations import Operations -from ._tag_rules_operations import TagRulesOperations -from ._single_sign_on_configurations_operations import SingleSignOnConfigurationsOperations - -__all__ = [ - 'MarketplaceAgreementsOperations', - 'MonitorsOperations', - 'Operations', - 'TagRulesOperations', - 'SingleSignOnConfigurationsOperations', -] diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/_marketplace_agreements_operations.py b/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/_marketplace_agreements_operations.py deleted file mode 100644 index f8e23530dd3..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/_marketplace_agreements_operations.py +++ /dev/null @@ -1,175 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar -import warnings - -from azure.core.async_paging import AsyncItemPaged, AsyncList -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 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: ~microsoft_datadog_client.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. - """ - - models = models - - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config - - def list( - self, - **kwargs - ) -> AsyncIterable["models.DatadogAgreementResourceListResponse"]: - """List Datadog marketplace agreements in the subscription. - - List Datadog marketplace agreements in the subscription. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either DatadogAgreementResourceListResponse or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~microsoft_datadog_client.models.DatadogAgreementResourceListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogAgreementResourceListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize('DatadogAgreementResourceListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged( - get_next, extract_data - ) - list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Datadog/agreements'} # type: ignore - - async def create_or_update( - self, - body: Optional["models.DatadogAgreementResource"] = None, - **kwargs - ) -> "models.DatadogAgreementResource": - """Create Datadog marketplace agreement in the subscription. - - Create Datadog marketplace agreement in the subscription. - - :param body: - :type body: ~microsoft_datadog_client.models.DatadogAgreementResource - :keyword callable cls: A custom type or function that will be passed the direct response - :return: DatadogAgreementResource, or the result of cls(response) - :rtype: ~microsoft_datadog_client.models.DatadogAgreementResource - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogAgreementResource"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self.create_or_update.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # 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] - if body is not None: - body_content = self._serialize.body(body, 'DatadogAgreementResource') - else: - body_content = None - body_content_kwargs['content'] = body_content - request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize('DatadogAgreementResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Datadog/agreements/default'} # type: ignore diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/_monitors_operations.py b/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/_monitors_operations.py deleted file mode 100644 index 37d8af8b680..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/_monitors_operations.py +++ /dev/null @@ -1,1125 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union -import warnings - -from azure.core.async_paging import AsyncItemPaged, AsyncList -from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error -from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest -from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.mgmt.core.exceptions import ARMErrorFormat -from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling - -from ... import models - -T = TypeVar('T') -ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] - -class MonitorsOperations: - """MonitorsOperations 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: ~microsoft_datadog_client.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. - """ - - models = models - - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config - - def list_api_keys( - self, - resource_group_name: str, - monitor_name: str, - **kwargs - ) -> AsyncIterable["models.DatadogApiKeyListResponse"]: - """List the api keys for a given monitor resource. - - List the api keys for a given monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either DatadogApiKeyListResponse or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~microsoft_datadog_client.models.DatadogApiKeyListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogApiKeyListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list_api_keys.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.post(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize('DatadogApiKeyListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged( - get_next, extract_data - ) - list_api_keys.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/listApiKeys'} # type: ignore - - async def get_default_key( - self, - resource_group_name: str, - monitor_name: str, - **kwargs - ) -> "models.DatadogApiKey": - """Get the default api key. - - Get the default api key. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: DatadogApiKey, or the result of cls(response) - :rtype: ~microsoft_datadog_client.models.DatadogApiKey - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogApiKey"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - # Construct URL - url = self.get_default_key.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - request = self._client.post(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize('DatadogApiKey', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get_default_key.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/getDefaultKey'} # type: ignore - - async def set_default_key( - self, - resource_group_name: str, - monitor_name: str, - body: Optional["models.DatadogApiKey"] = None, - **kwargs - ) -> None: - """Set the default api key. - - Set the default api key. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :param body: - :type body: ~microsoft_datadog_client.models.DatadogApiKey - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None, or the result of cls(response) - :rtype: None - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType[None] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self.set_default_key.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_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] - if body is not None: - body_content = self._serialize.body(body, 'DatadogApiKey') - else: - body_content = None - body_content_kwargs['content'] = body_content - request = self._client.post(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - set_default_key.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/setDefaultKey'} # type: ignore - - def list_hosts( - self, - resource_group_name: str, - monitor_name: str, - **kwargs - ) -> AsyncIterable["models.DatadogHostListResponse"]: - """List the hosts for a given monitor resource. - - List the hosts for a given monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either DatadogHostListResponse or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~microsoft_datadog_client.models.DatadogHostListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogHostListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list_hosts.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.post(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize('DatadogHostListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged( - get_next, extract_data - ) - list_hosts.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/listHosts'} # type: ignore - - def list_linked_resources( - self, - resource_group_name: str, - monitor_name: str, - **kwargs - ) -> AsyncIterable["models.LinkedResourceListResponse"]: - """List all Azure resources associated to the same Datadog organization as the target resource. - - List all Azure resources associated to the same Datadog organization as the target resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either LinkedResourceListResponse or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~microsoft_datadog_client.models.LinkedResourceListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.LinkedResourceListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list_linked_resources.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.post(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize('LinkedResourceListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged( - get_next, extract_data - ) - list_linked_resources.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/listLinkedResources'} # type: ignore - - def list_monitored_resources( - self, - resource_group_name: str, - monitor_name: str, - **kwargs - ) -> AsyncIterable["models.MonitoredResourceListResponse"]: - """List the resources currently being monitored by the Datadog monitor resource. - - List the resources currently being monitored by the Datadog monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either MonitoredResourceListResponse or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~microsoft_datadog_client.models.MonitoredResourceListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.MonitoredResourceListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list_monitored_resources.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.post(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize('MonitoredResourceListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged( - get_next, extract_data - ) - list_monitored_resources.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/listMonitoredResources'} # type: ignore - - def list( - self, - **kwargs - ) -> AsyncIterable["models.DatadogMonitorResourceListResponse"]: - """List all monitors under the specified subscription. - - List all monitors under the specified subscription. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either DatadogMonitorResourceListResponse or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~microsoft_datadog_client.models.DatadogMonitorResourceListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogMonitorResourceListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize('DatadogMonitorResourceListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged( - get_next, extract_data - ) - list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Datadog/monitors'} # type: ignore - - def list_by_resource_group( - self, - resource_group_name: str, - **kwargs - ) -> AsyncIterable["models.DatadogMonitorResourceListResponse"]: - """List all monitors under the specified resource group. - - List all monitors under the specified resource group. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either DatadogMonitorResourceListResponse or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~microsoft_datadog_client.models.DatadogMonitorResourceListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogMonitorResourceListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list_by_resource_group.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize('DatadogMonitorResourceListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged( - get_next, extract_data - ) - list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors'} # type: ignore - - async def get( - self, - resource_group_name: str, - monitor_name: str, - **kwargs - ) -> "models.DatadogMonitorResource": - """Get the properties of a specific monitor resource. - - Get the properties of a specific monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: DatadogMonitorResource, or the result of cls(response) - :rtype: ~microsoft_datadog_client.models.DatadogMonitorResource - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogMonitorResource"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize('DatadogMonitorResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}'} # type: ignore - - async def _create_initial( - self, - resource_group_name: str, - monitor_name: str, - body: Optional["models.DatadogMonitorResource"] = None, - **kwargs - ) -> "models.DatadogMonitorResource": - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogMonitorResource"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self._create_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_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] - if body is not None: - body_content = self._serialize.body(body, 'DatadogMonitorResource') - else: - body_content = None - body_content_kwargs['content'] = body_content - request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200, 201]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if response.status_code == 200: - deserialized = self._deserialize('DatadogMonitorResource', pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize('DatadogMonitorResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - _create_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}'} # type: ignore - - async def begin_create( - self, - resource_group_name: str, - monitor_name: str, - body: Optional["models.DatadogMonitorResource"] = None, - **kwargs - ) -> AsyncLROPoller["models.DatadogMonitorResource"]: - """Create a monitor resource. - - Create a monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :param body: - :type body: ~microsoft_datadog_client.models.DatadogMonitorResource - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: An instance of AsyncLROPoller that returns either DatadogMonitorResource or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~microsoft_datadog_client.models.DatadogMonitorResource] - :raises ~azure.core.exceptions.HttpResponseError: - """ - polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogMonitorResource"] - lro_delay = kwargs.pop( - 'polling_interval', - self._config.polling_interval - ) - cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] - if cont_token is None: - raw_result = await self._create_initial( - resource_group_name=resource_group_name, - monitor_name=monitor_name, - body=body, - cls=lambda x,y,z: x, - **kwargs - ) - - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize('DatadogMonitorResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - - if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = AsyncNoPolling() - else: polling_method = polling - if cont_token: - return AsyncLROPoller.from_continuation_token( - polling_method=polling_method, - continuation_token=cont_token, - client=self._client, - deserialization_callback=get_long_running_output - ) - else: - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}'} # type: ignore - - async def _update_initial( - self, - resource_group_name: str, - monitor_name: str, - body: Optional["models.DatadogMonitorResourceUpdateParameters"] = None, - **kwargs - ) -> "models.DatadogMonitorResource": - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogMonitorResource"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self._update_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_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] - if body is not None: - body_content = self._serialize.body(body, 'DatadogMonitorResourceUpdateParameters') - else: - body_content = None - body_content_kwargs['content'] = body_content - request = self._client.patch(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200, 201]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if response.status_code == 200: - deserialized = self._deserialize('DatadogMonitorResource', pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize('DatadogMonitorResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - _update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}'} # type: ignore - - async def begin_update( - self, - resource_group_name: str, - monitor_name: str, - body: Optional["models.DatadogMonitorResourceUpdateParameters"] = None, - **kwargs - ) -> AsyncLROPoller["models.DatadogMonitorResource"]: - """Update a monitor resource. - - Update a monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :param body: - :type body: ~microsoft_datadog_client.models.DatadogMonitorResourceUpdateParameters - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: An instance of AsyncLROPoller that returns either DatadogMonitorResource or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~microsoft_datadog_client.models.DatadogMonitorResource] - :raises ~azure.core.exceptions.HttpResponseError: - """ - polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogMonitorResource"] - lro_delay = kwargs.pop( - 'polling_interval', - self._config.polling_interval - ) - cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] - if cont_token is None: - raw_result = await self._update_initial( - resource_group_name=resource_group_name, - monitor_name=monitor_name, - body=body, - cls=lambda x,y,z: x, - **kwargs - ) - - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize('DatadogMonitorResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - - if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = AsyncNoPolling() - else: polling_method = polling - if cont_token: - return AsyncLROPoller.from_continuation_token( - polling_method=polling_method, - continuation_token=cont_token, - client=self._client, - deserialization_callback=get_long_running_output - ) - else: - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}'} # type: ignore - - async def _delete_initial( - self, - resource_group_name: str, - monitor_name: str, - **kwargs - ) -> None: - cls = kwargs.pop('cls', None) # type: ClsType[None] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - # Construct URL - url = self._delete_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - request = self._client.delete(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200, 202, 204]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}'} # type: ignore - - async def begin_delete( - self, - resource_group_name: str, - monitor_name: str, - **kwargs - ) -> AsyncLROPoller[None]: - """Delete a monitor resource. - - Delete a monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: An instance of AsyncLROPoller that returns either None or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[None] - :raises ~azure.core.exceptions.HttpResponseError: - """ - polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType[None] - lro_delay = kwargs.pop( - 'polling_interval', - self._config.polling_interval - ) - cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] - if cont_token is None: - raw_result = await self._delete_initial( - resource_group_name=resource_group_name, - monitor_name=monitor_name, - cls=lambda x,y,z: x, - **kwargs - ) - - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) - - def get_long_running_output(pipeline_response): - if cls: - return cls(pipeline_response, None, {}) - - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - - if polling is True: polling_method = AsyncARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = AsyncNoPolling() - else: polling_method = polling - if cont_token: - return AsyncLROPoller.from_continuation_token( - polling_method=polling_method, - continuation_token=cont_token, - client=self._client, - deserialization_callback=get_long_running_output - ) - else: - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}'} # type: ignore - - async def refresh_set_password_link( - self, - resource_group_name: str, - monitor_name: str, - **kwargs - ) -> "models.DatadogSetPasswordLink": - """Refresh the set password link and return a latest one. - - Refresh the set password link and return a latest one. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: DatadogSetPasswordLink, or the result of cls(response) - :rtype: ~microsoft_datadog_client.models.DatadogSetPasswordLink - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogSetPasswordLink"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - # Construct URL - url = self.refresh_set_password_link.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - request = self._client.post(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize('DatadogSetPasswordLink', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - refresh_set_password_link.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/refreshSetPasswordLink'} # type: ignore diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/_operations.py b/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/_operations.py deleted file mode 100644 index a50ee92b7bf..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/_operations.py +++ /dev/null @@ -1,107 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar -import warnings - -from azure.core.async_paging import AsyncItemPaged, AsyncList -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 Operations: - """Operations 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: ~microsoft_datadog_client.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. - """ - - models = models - - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config - - def list( - self, - **kwargs - ) -> AsyncIterable["models.OperationListResult"]: - """List all operations provided by Microsoft.Datadog for the 2021-03-01 api version. - - List all operations provided by Microsoft.Datadog for the 2021-03-01 api version. - - :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[~microsoft_datadog_client.models.OperationListResult] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.OperationListResult"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize('OperationListResult', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged( - get_next, extract_data - ) - list.metadata = {'url': '/providers/Microsoft.Datadog/operations'} # type: ignore diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/_single_sign_on_configurations_operations.py b/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/_single_sign_on_configurations_operations.py deleted file mode 100644 index 79838a3df58..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/_single_sign_on_configurations_operations.py +++ /dev/null @@ -1,327 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar, Union -import warnings - -from azure.core.async_paging import AsyncItemPaged, AsyncList -from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error -from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import AsyncHttpResponse, HttpRequest -from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod -from azure.mgmt.core.exceptions import ARMErrorFormat -from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling - -from ... import models - -T = TypeVar('T') -ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]] - -class SingleSignOnConfigurationsOperations: - """SingleSignOnConfigurationsOperations 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: ~microsoft_datadog_client.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. - """ - - models = models - - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config - - def list( - self, - resource_group_name: str, - monitor_name: str, - **kwargs - ) -> AsyncIterable["models.DatadogSingleSignOnResourceListResponse"]: - """List the single sign-on configurations for a given monitor resource. - - List the single sign-on configurations for a given monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either DatadogSingleSignOnResourceListResponse or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~microsoft_datadog_client.models.DatadogSingleSignOnResourceListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogSingleSignOnResourceListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize('DatadogSingleSignOnResourceListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged( - get_next, extract_data - ) - list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/singleSignOnConfigurations'} # type: ignore - - async def _create_or_update_initial( - self, - resource_group_name: str, - monitor_name: str, - configuration_name: str, - body: Optional["models.DatadogSingleSignOnResource"] = None, - **kwargs - ) -> "models.DatadogSingleSignOnResource": - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogSingleSignOnResource"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self._create_or_update_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - 'configurationName': self._serialize.url("configuration_name", configuration_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] - if body is not None: - body_content = self._serialize.body(body, 'DatadogSingleSignOnResource') - else: - body_content = None - body_content_kwargs['content'] = body_content - request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200, 201]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if response.status_code == 200: - deserialized = self._deserialize('DatadogSingleSignOnResource', pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize('DatadogSingleSignOnResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/singleSignOnConfigurations/{configurationName}'} # type: ignore - - async def begin_create_or_update( - self, - resource_group_name: str, - monitor_name: str, - configuration_name: str, - body: Optional["models.DatadogSingleSignOnResource"] = None, - **kwargs - ) -> AsyncLROPoller["models.DatadogSingleSignOnResource"]: - """Configures single-sign-on for this resource. - - Configures single-sign-on for this resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :param configuration_name: Configuration name. - :type configuration_name: str - :param body: - :type body: ~microsoft_datadog_client.models.DatadogSingleSignOnResource - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy - :paramtype polling: bool or ~azure.core.polling.AsyncPollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: An instance of AsyncLROPoller that returns either DatadogSingleSignOnResource or the result of cls(response) - :rtype: ~azure.core.polling.AsyncLROPoller[~microsoft_datadog_client.models.DatadogSingleSignOnResource] - :raises ~azure.core.exceptions.HttpResponseError: - """ - polling = kwargs.pop('polling', True) # type: Union[bool, AsyncPollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogSingleSignOnResource"] - lro_delay = kwargs.pop( - 'polling_interval', - self._config.polling_interval - ) - cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] - if cont_token is None: - raw_result = await self._create_or_update_initial( - resource_group_name=resource_group_name, - monitor_name=monitor_name, - configuration_name=configuration_name, - body=body, - cls=lambda x,y,z: x, - **kwargs - ) - - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize('DatadogSingleSignOnResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - 'configurationName': self._serialize.url("configuration_name", configuration_name, 'str'), - } - - if polling is True: polling_method = AsyncARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = AsyncNoPolling() - else: polling_method = polling - if cont_token: - return AsyncLROPoller.from_continuation_token( - polling_method=polling_method, - continuation_token=cont_token, - client=self._client, - deserialization_callback=get_long_running_output - ) - else: - return AsyncLROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/singleSignOnConfigurations/{configurationName}'} # type: ignore - - async def get( - self, - resource_group_name: str, - monitor_name: str, - configuration_name: str, - **kwargs - ) -> "models.DatadogSingleSignOnResource": - """Gets the datadog single sign-on resource for the given Monitor. - - Gets the datadog single sign-on resource for the given Monitor. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :param configuration_name: Configuration name. - :type configuration_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: DatadogSingleSignOnResource, or the result of cls(response) - :rtype: ~microsoft_datadog_client.models.DatadogSingleSignOnResource - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogSingleSignOnResource"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - 'configurationName': self._serialize.url("configuration_name", configuration_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize('DatadogSingleSignOnResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/singleSignOnConfigurations/{configurationName}'} # type: ignore diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/_tag_rules_operations.py b/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/_tag_rules_operations.py deleted file mode 100644 index 972b816ad93..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/aio/operations/_tag_rules_operations.py +++ /dev/null @@ -1,260 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- -from typing import Any, AsyncIterable, Callable, Dict, Generic, Optional, TypeVar -import warnings - -from azure.core.async_paging import AsyncItemPaged, AsyncList -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 TagRulesOperations: - """TagRulesOperations 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: ~microsoft_datadog_client.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. - """ - - models = models - - def __init__(self, client, config, serializer, deserializer) -> None: - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config - - def list( - self, - resource_group_name: str, - monitor_name: str, - **kwargs - ) -> AsyncIterable["models.MonitoringTagRulesListResponse"]: - """List the tag rules for a given monitor resource. - - List the tag rules for a given monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either MonitoringTagRulesListResponse or the result of cls(response) - :rtype: ~azure.core.async_paging.AsyncItemPaged[~microsoft_datadog_client.models.MonitoringTagRulesListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.MonitoringTagRulesListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - async def extract_data(pipeline_response): - deserialized = self._deserialize('MonitoringTagRulesListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, AsyncList(list_of_elem) - - async def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return AsyncItemPaged( - get_next, extract_data - ) - list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/tagRules'} # type: ignore - - async def create_or_update( - self, - resource_group_name: str, - monitor_name: str, - rule_set_name: str, - body: Optional["models.MonitoringTagRules"] = None, - **kwargs - ) -> "models.MonitoringTagRules": - """Create or update a tag rule set for a given monitor resource. - - Create or update a tag rule set for a given monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :param rule_set_name: Rule set name. - :type rule_set_name: str - :param body: - :type body: ~microsoft_datadog_client.models.MonitoringTagRules - :keyword callable cls: A custom type or function that will be passed the direct response - :return: MonitoringTagRules, or the result of cls(response) - :rtype: ~microsoft_datadog_client.models.MonitoringTagRules - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.MonitoringTagRules"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self.create_or_update.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - 'ruleSetName': self._serialize.url("rule_set_name", rule_set_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] - if body is not None: - body_content = self._serialize.body(body, 'MonitoringTagRules') - else: - body_content = None - body_content_kwargs['content'] = body_content - request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize('MonitoringTagRules', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/tagRules/{ruleSetName}'} # type: ignore - - async def get( - self, - resource_group_name: str, - monitor_name: str, - rule_set_name: str, - **kwargs - ) -> "models.MonitoringTagRules": - """Get a tag rule set for a given monitor resource. - - Get a tag rule set for a given monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :param rule_set_name: Rule set name. - :type rule_set_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: MonitoringTagRules, or the result of cls(response) - :rtype: ~microsoft_datadog_client.models.MonitoringTagRules - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.MonitoringTagRules"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - 'ruleSetName': self._serialize.url("rule_set_name", rule_set_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = await self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize('MonitoringTagRules', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/tagRules/{ruleSetName}'} # type: ignore diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/models/__init__.py b/src/datadog/azext_datadog/vendored_sdks/datadog/models/__init__.py deleted file mode 100644 index 68e79e98bcc..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/models/__init__.py +++ /dev/null @@ -1,152 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -try: - from ._models_py3 import DatadogAgreementProperties - from ._models_py3 import DatadogAgreementResource - from ._models_py3 import DatadogAgreementResourceListResponse - from ._models_py3 import DatadogApiKey - from ._models_py3 import DatadogApiKeyListResponse - from ._models_py3 import DatadogHost - from ._models_py3 import DatadogHostListResponse - from ._models_py3 import DatadogHostMetadata - from ._models_py3 import DatadogInstallMethod - from ._models_py3 import DatadogLogsAgent - from ._models_py3 import DatadogMonitorResource - from ._models_py3 import DatadogMonitorResourceListResponse - from ._models_py3 import DatadogMonitorResourceUpdateParameters - from ._models_py3 import DatadogOrganizationProperties - from ._models_py3 import DatadogSetPasswordLink - from ._models_py3 import DatadogSingleSignOnProperties - from ._models_py3 import DatadogSingleSignOnResource - from ._models_py3 import DatadogSingleSignOnResourceListResponse - from ._models_py3 import ErrorAdditionalInfo - from ._models_py3 import ErrorDetail - from ._models_py3 import ErrorResponse - from ._models_py3 import FilteringTag - from ._models_py3 import IdentityProperties - from ._models_py3 import LinkedResource - from ._models_py3 import LinkedResourceListResponse - from ._models_py3 import LogRules - from ._models_py3 import MetricRules - from ._models_py3 import MonitorProperties - from ._models_py3 import MonitorUpdateProperties - from ._models_py3 import MonitoredResource - from ._models_py3 import MonitoredResourceListResponse - from ._models_py3 import MonitoringTagRules - from ._models_py3 import MonitoringTagRulesListResponse - from ._models_py3 import MonitoringTagRulesProperties - from ._models_py3 import OperationDisplay - from ._models_py3 import OperationListResult - from ._models_py3 import OperationResult - from ._models_py3 import ResourceSku - from ._models_py3 import SystemData - from ._models_py3 import UserInfo -except (SyntaxError, ImportError): - from ._models import DatadogAgreementProperties # type: ignore - from ._models import DatadogAgreementResource # type: ignore - from ._models import DatadogAgreementResourceListResponse # type: ignore - from ._models import DatadogApiKey # type: ignore - from ._models import DatadogApiKeyListResponse # type: ignore - from ._models import DatadogHost # type: ignore - from ._models import DatadogHostListResponse # type: ignore - from ._models import DatadogHostMetadata # type: ignore - from ._models import DatadogInstallMethod # type: ignore - from ._models import DatadogLogsAgent # type: ignore - from ._models import DatadogMonitorResource # type: ignore - from ._models import DatadogMonitorResourceListResponse # type: ignore - from ._models import DatadogMonitorResourceUpdateParameters # type: ignore - from ._models import DatadogOrganizationProperties # type: ignore - from ._models import DatadogSetPasswordLink # type: ignore - from ._models import DatadogSingleSignOnProperties # type: ignore - from ._models import DatadogSingleSignOnResource # type: ignore - from ._models import DatadogSingleSignOnResourceListResponse # type: ignore - from ._models import ErrorAdditionalInfo # type: ignore - from ._models import ErrorDetail # type: ignore - from ._models import ErrorResponse # type: ignore - from ._models import FilteringTag # type: ignore - from ._models import IdentityProperties # type: ignore - from ._models import LinkedResource # type: ignore - from ._models import LinkedResourceListResponse # type: ignore - from ._models import LogRules # type: ignore - from ._models import MetricRules # type: ignore - from ._models import MonitorProperties # type: ignore - from ._models import MonitorUpdateProperties # type: ignore - from ._models import MonitoredResource # type: ignore - from ._models import MonitoredResourceListResponse # type: ignore - from ._models import MonitoringTagRules # type: ignore - from ._models import MonitoringTagRulesListResponse # type: ignore - from ._models import MonitoringTagRulesProperties # type: ignore - from ._models import OperationDisplay # type: ignore - from ._models import OperationListResult # type: ignore - from ._models import OperationResult # type: ignore - from ._models import ResourceSku # type: ignore - from ._models import SystemData # type: ignore - from ._models import UserInfo # type: ignore - -from ._microsoft_datadog_client_enums import ( - CreatedByType, - LiftrResourceCategories, - ManagedIdentityTypes, - MarketplaceSubscriptionStatus, - MonitoringStatus, - ProvisioningState, - SingleSignOnStates, - TagAction, -) - -__all__ = [ - 'DatadogAgreementProperties', - 'DatadogAgreementResource', - 'DatadogAgreementResourceListResponse', - 'DatadogApiKey', - 'DatadogApiKeyListResponse', - 'DatadogHost', - 'DatadogHostListResponse', - 'DatadogHostMetadata', - 'DatadogInstallMethod', - 'DatadogLogsAgent', - 'DatadogMonitorResource', - 'DatadogMonitorResourceListResponse', - 'DatadogMonitorResourceUpdateParameters', - 'DatadogOrganizationProperties', - 'DatadogSetPasswordLink', - 'DatadogSingleSignOnProperties', - 'DatadogSingleSignOnResource', - 'DatadogSingleSignOnResourceListResponse', - 'ErrorAdditionalInfo', - 'ErrorDetail', - 'ErrorResponse', - 'FilteringTag', - 'IdentityProperties', - 'LinkedResource', - 'LinkedResourceListResponse', - 'LogRules', - 'MetricRules', - 'MonitorProperties', - 'MonitorUpdateProperties', - 'MonitoredResource', - 'MonitoredResourceListResponse', - 'MonitoringTagRules', - 'MonitoringTagRulesListResponse', - 'MonitoringTagRulesProperties', - 'OperationDisplay', - 'OperationListResult', - 'OperationResult', - 'ResourceSku', - 'SystemData', - 'UserInfo', - 'CreatedByType', - 'LiftrResourceCategories', - 'ManagedIdentityTypes', - 'MarketplaceSubscriptionStatus', - 'MonitoringStatus', - 'ProvisioningState', - 'SingleSignOnStates', - 'TagAction', -] diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/models/_microsoft_datadog_client_enums.py b/src/datadog/azext_datadog/vendored_sdks/datadog/models/_microsoft_datadog_client_enums.py deleted file mode 100644 index eba8198b7a4..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/models/_microsoft_datadog_client_enums.py +++ /dev/null @@ -1,93 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from enum import Enum, EnumMeta -from six import with_metaclass - -class _CaseInsensitiveEnumMeta(EnumMeta): - def __getitem__(self, name): - return super().__getitem__(name.upper()) - - def __getattr__(cls, name): - """Return the enum member matching `name` - We use __getattr__ instead of descriptors or inserting into the enum - class' __dict__ in order to support `name` and `value` being both - properties for enum members (which live in the class' __dict__) and - enum members themselves. - """ - try: - return cls._member_map_[name.upper()] - except KeyError: - raise AttributeError(name) - - -class CreatedByType(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """The type of identity that created the resource. - """ - - USER = "User" - APPLICATION = "Application" - MANAGED_IDENTITY = "ManagedIdentity" - KEY = "Key" - -class LiftrResourceCategories(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - - UNKNOWN = "Unknown" - MONITOR_LOGS = "MonitorLogs" - -class ManagedIdentityTypes(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Identity type - """ - - SYSTEM_ASSIGNED = "SystemAssigned" - USER_ASSIGNED = "UserAssigned" - -class MarketplaceSubscriptionStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Flag specifying the Marketplace Subscription Status of the resource. If payment is not made in - time, the resource will go in Suspended state. - """ - - PROVISIONING = "Provisioning" - ACTIVE = "Active" - SUSPENDED = "Suspended" - UNSUBSCRIBED = "Unsubscribed" - -class MonitoringStatus(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Flag specifying if the resource monitoring is enabled or disabled. - """ - - ENABLED = "Enabled" - DISABLED = "Disabled" - -class ProvisioningState(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - - ACCEPTED = "Accepted" - CREATING = "Creating" - UPDATING = "Updating" - DELETING = "Deleting" - SUCCEEDED = "Succeeded" - FAILED = "Failed" - CANCELED = "Canceled" - DELETED = "Deleted" - NOT_SPECIFIED = "NotSpecified" - -class SingleSignOnStates(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Various states of the SSO resource - """ - - INITIAL = "Initial" - ENABLE = "Enable" - DISABLE = "Disable" - EXISTING = "Existing" - -class TagAction(with_metaclass(_CaseInsensitiveEnumMeta, str, Enum)): - """Valid actions for a filtering tag. Exclusion takes priority over inclusion. - """ - - INCLUDE = "Include" - EXCLUDE = "Exclude" diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/models/_models.py b/src/datadog/azext_datadog/vendored_sdks/datadog/models/_models.py deleted file mode 100644 index f533a74176b..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/models/_models.py +++ /dev/null @@ -1,1283 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from azure.core.exceptions import HttpResponseError -import msrest.serialization - - -class DatadogAgreementProperties(msrest.serialization.Model): - """Terms properties. - - :param publisher: Publisher identifier string. - :type publisher: str - :param product: Product identifier string. - :type product: str - :param plan: Plan identifier string. - :type plan: str - :param license_text_link: Link to HTML with Microsoft and Publisher terms. - :type license_text_link: str - :param privacy_policy_link: Link to the privacy policy of the publisher. - :type privacy_policy_link: str - :param retrieve_datetime: Date and time in UTC of when the terms were accepted. This is empty - if Accepted is false. - :type retrieve_datetime: ~datetime.datetime - :param signature: Terms signature. - :type signature: str - :param accepted: If any version of the terms have been accepted, otherwise false. - :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(DatadogAgreementProperties, 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 DatadogAgreementResource(msrest.serialization.Model): - """DatadogAgreementResource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: ARM id of the resource. - :vartype id: str - :ivar name: Name of the agreement. - :vartype name: str - :ivar type: The type of the resource. - :vartype type: str - :param properties: Represents the properties of the resource. - :type properties: ~microsoft_datadog_client.models.DatadogAgreementProperties - :ivar system_data: Metadata pertaining to creation and last modification of the resource. - :vartype system_data: ~microsoft_datadog_client.models.SystemData - """ - - _validation = { - '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'}, - 'properties': {'key': 'properties', 'type': 'DatadogAgreementProperties'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogAgreementResource, self).__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.properties = kwargs.get('properties', None) - self.system_data = None - - -class DatadogAgreementResourceListResponse(msrest.serialization.Model): - """Response of a list operation. - - :param value: Results of a list operation. - :type value: list[~microsoft_datadog_client.models.DatadogAgreementResource] - :param next_link: Link to the next set of results, if any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[DatadogAgreementResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogAgreementResourceListResponse, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = kwargs.get('next_link', None) - - -class DatadogApiKey(msrest.serialization.Model): - """DatadogApiKey. - - All required parameters must be populated in order to send to Azure. - - :param created_by: The user that created the API key. - :type created_by: str - :param name: The name of the API key. - :type name: str - :param key: Required. The value of the API key. - :type key: str - :param created: The time of creation of the API key. - :type created: str - """ - - _validation = { - 'key': {'required': True}, - } - - _attribute_map = { - 'created_by': {'key': 'createdBy', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'key': {'key': 'key', 'type': 'str'}, - 'created': {'key': 'created', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogApiKey, self).__init__(**kwargs) - self.created_by = kwargs.get('created_by', None) - self.name = kwargs.get('name', None) - self.key = kwargs['key'] - self.created = kwargs.get('created', None) - - -class DatadogApiKeyListResponse(msrest.serialization.Model): - """Response of a list operation. - - :param value: Results of a list operation. - :type value: list[~microsoft_datadog_client.models.DatadogApiKey] - :param next_link: Link to the next set of results, if any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[DatadogApiKey]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogApiKeyListResponse, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = kwargs.get('next_link', None) - - -class DatadogHost(msrest.serialization.Model): - """DatadogHost. - - :param name: The name of the host. - :type name: str - :param aliases: The aliases for the host. - :type aliases: list[str] - :param apps: The Datadog integrations reporting metrics for the host. - :type apps: list[str] - :param meta: - :type meta: ~microsoft_datadog_client.models.DatadogHostMetadata - """ - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'aliases': {'key': 'aliases', 'type': '[str]'}, - 'apps': {'key': 'apps', 'type': '[str]'}, - 'meta': {'key': 'meta', 'type': 'DatadogHostMetadata'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogHost, self).__init__(**kwargs) - self.name = kwargs.get('name', None) - self.aliases = kwargs.get('aliases', None) - self.apps = kwargs.get('apps', None) - self.meta = kwargs.get('meta', None) - - -class DatadogHostListResponse(msrest.serialization.Model): - """Response of a list operation. - - :param value: Results of a list operation. - :type value: list[~microsoft_datadog_client.models.DatadogHost] - :param next_link: Link to the next set of results, if any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[DatadogHost]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogHostListResponse, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = kwargs.get('next_link', None) - - -class DatadogHostMetadata(msrest.serialization.Model): - """DatadogHostMetadata. - - :param agent_version: The agent version. - :type agent_version: str - :param install_method: - :type install_method: ~microsoft_datadog_client.models.DatadogInstallMethod - :param logs_agent: - :type logs_agent: ~microsoft_datadog_client.models.DatadogLogsAgent - """ - - _attribute_map = { - 'agent_version': {'key': 'agentVersion', 'type': 'str'}, - 'install_method': {'key': 'installMethod', 'type': 'DatadogInstallMethod'}, - 'logs_agent': {'key': 'logsAgent', 'type': 'DatadogLogsAgent'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogHostMetadata, self).__init__(**kwargs) - self.agent_version = kwargs.get('agent_version', None) - self.install_method = kwargs.get('install_method', None) - self.logs_agent = kwargs.get('logs_agent', None) - - -class DatadogInstallMethod(msrest.serialization.Model): - """DatadogInstallMethod. - - :param tool: The tool. - :type tool: str - :param tool_version: The tool version. - :type tool_version: str - :param installer_version: The installer version. - :type installer_version: str - """ - - _attribute_map = { - 'tool': {'key': 'tool', 'type': 'str'}, - 'tool_version': {'key': 'toolVersion', 'type': 'str'}, - 'installer_version': {'key': 'installerVersion', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogInstallMethod, self).__init__(**kwargs) - self.tool = kwargs.get('tool', None) - self.tool_version = kwargs.get('tool_version', None) - self.installer_version = kwargs.get('installer_version', None) - - -class DatadogLogsAgent(msrest.serialization.Model): - """DatadogLogsAgent. - - :param transport: The transport. - :type transport: str - """ - - _attribute_map = { - 'transport': {'key': 'transport', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogLogsAgent, self).__init__(**kwargs) - self.transport = kwargs.get('transport', None) - - -class DatadogMonitorResource(msrest.serialization.Model): - """DatadogMonitorResource. - - 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: ARM id of the monitor resource. - :vartype id: str - :ivar name: Name of the monitor resource. - :vartype name: str - :ivar type: The type of the monitor resource. - :vartype type: str - :param sku: - :type sku: ~microsoft_datadog_client.models.ResourceSku - :param properties: Properties specific to the monitor resource. - :type properties: ~microsoft_datadog_client.models.MonitorProperties - :param identity: - :type identity: ~microsoft_datadog_client.models.IdentityProperties - :param tags: A set of tags. Dictionary of :code:``. - :type tags: dict[str, str] - :param location: Required. - :type location: str - :ivar system_data: Metadata pertaining to creation and last modification of the resource. - :vartype system_data: ~microsoft_datadog_client.models.SystemData - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'location': {'required': True}, - 'system_data': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'sku': {'key': 'sku', 'type': 'ResourceSku'}, - 'properties': {'key': 'properties', 'type': 'MonitorProperties'}, - 'identity': {'key': 'identity', 'type': 'IdentityProperties'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'location': {'key': 'location', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogMonitorResource, self).__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.sku = kwargs.get('sku', None) - self.properties = kwargs.get('properties', None) - self.identity = kwargs.get('identity', None) - self.tags = kwargs.get('tags', None) - self.location = kwargs['location'] - self.system_data = None - - -class DatadogMonitorResourceListResponse(msrest.serialization.Model): - """Response of a list operation. - - :param value: Results of a list operation. - :type value: list[~microsoft_datadog_client.models.DatadogMonitorResource] - :param next_link: Link to the next set of results, if any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[DatadogMonitorResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogMonitorResourceListResponse, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = kwargs.get('next_link', None) - - -class DatadogMonitorResourceUpdateParameters(msrest.serialization.Model): - """The parameters for a PATCH request to a monitor resource. - - :param properties: The set of properties that can be update in a PATCH request to a monitor - resource. - :type properties: ~microsoft_datadog_client.models.MonitorUpdateProperties - :param tags: A set of tags. The new tags of the monitor resource. - :type tags: dict[str, str] - :param sku: - :type sku: ~microsoft_datadog_client.models.ResourceSku - """ - - _attribute_map = { - 'properties': {'key': 'properties', 'type': 'MonitorUpdateProperties'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'sku': {'key': 'sku', 'type': 'ResourceSku'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogMonitorResourceUpdateParameters, self).__init__(**kwargs) - self.properties = kwargs.get('properties', None) - self.tags = kwargs.get('tags', None) - self.sku = kwargs.get('sku', None) - - -class DatadogOrganizationProperties(msrest.serialization.Model): - """Datadog organization properties. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar name: Name of the Datadog organization. - :vartype name: str - :ivar id: Id of the Datadog organization. - :vartype id: str - :param linking_auth_code: The auth code used to linking to an existing datadog organization. - :type linking_auth_code: str - :param linking_client_id: The client_id from an existing in exchange for an auth token to link - organization. - :type linking_client_id: str - :param redirect_uri: The redirect uri for linking. - :type redirect_uri: str - :param api_key: Api key associated to the Datadog organization. - :type api_key: str - :param application_key: Application key associated to the Datadog organization. - :type application_key: str - :param enterprise_app_id: The Id of the Enterprise App used for Single sign on. - :type enterprise_app_id: str - """ - - _validation = { - 'name': {'readonly': True}, - 'id': {'readonly': True}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'linking_auth_code': {'key': 'linkingAuthCode', 'type': 'str'}, - 'linking_client_id': {'key': 'linkingClientId', 'type': 'str'}, - 'redirect_uri': {'key': 'redirectUri', 'type': 'str'}, - 'api_key': {'key': 'apiKey', 'type': 'str'}, - 'application_key': {'key': 'applicationKey', 'type': 'str'}, - 'enterprise_app_id': {'key': 'enterpriseAppId', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogOrganizationProperties, self).__init__(**kwargs) - self.name = None - self.id = None - self.linking_auth_code = kwargs.get('linking_auth_code', None) - self.linking_client_id = kwargs.get('linking_client_id', None) - self.redirect_uri = kwargs.get('redirect_uri', None) - self.api_key = kwargs.get('api_key', None) - self.application_key = kwargs.get('application_key', None) - self.enterprise_app_id = kwargs.get('enterprise_app_id', None) - - -class DatadogSetPasswordLink(msrest.serialization.Model): - """DatadogSetPasswordLink. - - :param set_password_link: - :type set_password_link: str - """ - - _attribute_map = { - 'set_password_link': {'key': 'setPasswordLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogSetPasswordLink, self).__init__(**kwargs) - self.set_password_link = kwargs.get('set_password_link', None) - - -class DatadogSingleSignOnProperties(msrest.serialization.Model): - """DatadogSingleSignOnProperties. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar provisioning_state: Possible values include: "Accepted", "Creating", "Updating", - "Deleting", "Succeeded", "Failed", "Canceled", "Deleted", "NotSpecified". - :vartype provisioning_state: str or ~microsoft_datadog_client.models.ProvisioningState - :param single_sign_on_state: Various states of the SSO resource. Possible values include: - "Initial", "Enable", "Disable", "Existing". - :type single_sign_on_state: str or ~microsoft_datadog_client.models.SingleSignOnStates - :param enterprise_app_id: The Id of the Enterprise App used for Single sign-on. - :type enterprise_app_id: str - :ivar single_sign_on_url: The login URL specific to this Datadog Organization. - :vartype single_sign_on_url: str - """ - - _validation = { - 'provisioning_state': {'readonly': True}, - 'single_sign_on_url': {'readonly': True}, - } - - _attribute_map = { - 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, - 'single_sign_on_state': {'key': 'singleSignOnState', 'type': 'str'}, - 'enterprise_app_id': {'key': 'enterpriseAppId', 'type': 'str'}, - 'single_sign_on_url': {'key': 'singleSignOnUrl', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogSingleSignOnProperties, self).__init__(**kwargs) - self.provisioning_state = None - self.single_sign_on_state = kwargs.get('single_sign_on_state', None) - self.enterprise_app_id = kwargs.get('enterprise_app_id', None) - self.single_sign_on_url = None - - -class DatadogSingleSignOnResource(msrest.serialization.Model): - """DatadogSingleSignOnResource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: ARM id of the resource. - :vartype id: str - :ivar name: Name of the configuration. - :vartype name: str - :ivar type: The type of the resource. - :vartype type: str - :param properties: - :type properties: ~microsoft_datadog_client.models.DatadogSingleSignOnProperties - :ivar system_data: Metadata pertaining to creation and last modification of the resource. - :vartype system_data: ~microsoft_datadog_client.models.SystemData - """ - - _validation = { - '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'}, - 'properties': {'key': 'properties', 'type': 'DatadogSingleSignOnProperties'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogSingleSignOnResource, self).__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.properties = kwargs.get('properties', None) - self.system_data = None - - -class DatadogSingleSignOnResourceListResponse(msrest.serialization.Model): - """Response of a list operation. - - :param value: Results of a list operation. - :type value: list[~microsoft_datadog_client.models.DatadogSingleSignOnResource] - :param next_link: Link to the next set of results, if any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[DatadogSingleSignOnResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(DatadogSingleSignOnResourceListResponse, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = kwargs.get('next_link', None) - - -class ErrorAdditionalInfo(msrest.serialization.Model): - """The resource management error additional info. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar type: The additional info type. - :vartype type: str - :ivar info: The additional info. - :vartype info: object - """ - - _validation = { - 'type': {'readonly': True}, - 'info': {'readonly': True}, - } - - _attribute_map = { - 'type': {'key': 'type', 'type': 'str'}, - 'info': {'key': 'info', 'type': 'object'}, - } - - def __init__( - self, - **kwargs - ): - super(ErrorAdditionalInfo, self).__init__(**kwargs) - self.type = None - self.info = None - - -class ErrorDetail(msrest.serialization.Model): - """The error detail. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar code: The error code. - :vartype code: str - :ivar message: The error message. - :vartype message: str - :ivar target: The error target. - :vartype target: str - :ivar details: The error details. - :vartype details: list[~microsoft_datadog_client.models.ErrorDetail] - :ivar additional_info: The error additional info. - :vartype additional_info: list[~microsoft_datadog_client.models.ErrorAdditionalInfo] - """ - - _validation = { - 'code': {'readonly': True}, - 'message': {'readonly': True}, - 'target': {'readonly': True}, - 'details': {'readonly': True}, - 'additional_info': {'readonly': True}, - } - - _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, - 'target': {'key': 'target', 'type': 'str'}, - 'details': {'key': 'details', 'type': '[ErrorDetail]'}, - 'additional_info': {'key': 'additionalInfo', 'type': '[ErrorAdditionalInfo]'}, - } - - def __init__( - self, - **kwargs - ): - super(ErrorDetail, self).__init__(**kwargs) - self.code = None - self.message = None - self.target = None - self.details = None - self.additional_info = None - - -class ErrorResponse(msrest.serialization.Model): - """Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). - - :param error: The error object. - :type error: ~microsoft_datadog_client.models.ErrorDetail - """ - - _attribute_map = { - 'error': {'key': 'error', 'type': 'ErrorDetail'}, - } - - def __init__( - self, - **kwargs - ): - super(ErrorResponse, self).__init__(**kwargs) - self.error = kwargs.get('error', None) - - -class FilteringTag(msrest.serialization.Model): - """The definition of a filtering tag. Filtering tags are used for capturing resources and include/exclude them from being monitored. - - :param name: The name (also known as the key) of the tag. - :type name: str - :param value: The value of the tag. - :type value: str - :param action: Valid actions for a filtering tag. Exclusion takes priority over inclusion. - Possible values include: "Include", "Exclude". - :type action: str or ~microsoft_datadog_client.models.TagAction - """ - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'value': {'key': 'value', 'type': 'str'}, - 'action': {'key': 'action', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(FilteringTag, self).__init__(**kwargs) - self.name = kwargs.get('name', None) - self.value = kwargs.get('value', None) - self.action = kwargs.get('action', None) - - -class IdentityProperties(msrest.serialization.Model): - """IdentityProperties. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar principal_id: The identity ID. - :vartype principal_id: str - :ivar tenant_id: The tenant ID of resource. - :vartype tenant_id: str - :param type: Identity type. Possible values include: "SystemAssigned", "UserAssigned". - :type type: str or ~microsoft_datadog_client.models.ManagedIdentityTypes - """ - - _validation = { - 'principal_id': {'readonly': True}, - 'tenant_id': {'readonly': True}, - } - - _attribute_map = { - 'principal_id': {'key': 'principalId', 'type': 'str'}, - 'tenant_id': {'key': 'tenantId', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(IdentityProperties, self).__init__(**kwargs) - self.principal_id = None - self.tenant_id = None - self.type = kwargs.get('type', None) - - -class LinkedResource(msrest.serialization.Model): - """The definition of a linked resource. - - :param id: The ARM id of the linked resource. - :type id: str - """ - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(LinkedResource, self).__init__(**kwargs) - self.id = kwargs.get('id', None) - - -class LinkedResourceListResponse(msrest.serialization.Model): - """Response of a list operation. - - :param value: Results of a list operation. - :type value: list[~microsoft_datadog_client.models.LinkedResource] - :param next_link: Link to the next set of results, if any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[LinkedResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(LinkedResourceListResponse, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = kwargs.get('next_link', None) - - -class LogRules(msrest.serialization.Model): - """Set of rules for sending logs for the Monitor resource. - - :param send_aad_logs: Flag specifying if AAD logs should be sent for the Monitor resource. - :type send_aad_logs: bool - :param send_subscription_logs: Flag specifying if Azure subscription logs should be sent for - the Monitor resource. - :type send_subscription_logs: bool - :param send_resource_logs: Flag specifying if Azure resource logs should be sent for the - Monitor resource. - :type send_resource_logs: bool - :param filtering_tags: List of filtering tags to be used for capturing logs. This only takes - effect if SendResourceLogs flag is enabled. If empty, all resources will be captured. If only - Exclude action is specified, the rules will apply to the list of all available resources. If - Include actions are specified, the rules will only include resources with the associated tags. - :type filtering_tags: list[~microsoft_datadog_client.models.FilteringTag] - """ - - _attribute_map = { - 'send_aad_logs': {'key': 'sendAadLogs', 'type': 'bool'}, - 'send_subscription_logs': {'key': 'sendSubscriptionLogs', 'type': 'bool'}, - 'send_resource_logs': {'key': 'sendResourceLogs', 'type': 'bool'}, - 'filtering_tags': {'key': 'filteringTags', 'type': '[FilteringTag]'}, - } - - def __init__( - self, - **kwargs - ): - super(LogRules, self).__init__(**kwargs) - self.send_aad_logs = kwargs.get('send_aad_logs', None) - self.send_subscription_logs = kwargs.get('send_subscription_logs', None) - self.send_resource_logs = kwargs.get('send_resource_logs', None) - self.filtering_tags = kwargs.get('filtering_tags', None) - - -class MetricRules(msrest.serialization.Model): - """Set of rules for sending metrics for the Monitor resource. - - :param filtering_tags: List of filtering tags to be used for capturing metrics. If empty, all - resources will be captured. If only Exclude action is specified, the rules will apply to the - list of all available resources. If Include actions are specified, the rules will only include - resources with the associated tags. - :type filtering_tags: list[~microsoft_datadog_client.models.FilteringTag] - """ - - _attribute_map = { - 'filtering_tags': {'key': 'filteringTags', 'type': '[FilteringTag]'}, - } - - def __init__( - self, - **kwargs - ): - super(MetricRules, self).__init__(**kwargs) - self.filtering_tags = kwargs.get('filtering_tags', None) - - -class MonitoredResource(msrest.serialization.Model): - """The properties of a resource currently being monitored by the Datadog monitor resource. - - :param id: The ARM id of the resource. - :type id: str - :param sending_metrics: Flag indicating if resource is sending metrics to Datadog. - :type sending_metrics: bool - :param reason_for_metrics_status: Reason for why the resource is sending metrics (or why it is - not sending). - :type reason_for_metrics_status: str - :param sending_logs: Flag indicating if resource is sending logs to Datadog. - :type sending_logs: bool - :param reason_for_logs_status: Reason for why the resource is sending logs (or why it is not - sending). - :type reason_for_logs_status: str - """ - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'sending_metrics': {'key': 'sendingMetrics', 'type': 'bool'}, - 'reason_for_metrics_status': {'key': 'reasonForMetricsStatus', 'type': 'str'}, - 'sending_logs': {'key': 'sendingLogs', 'type': 'bool'}, - 'reason_for_logs_status': {'key': 'reasonForLogsStatus', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(MonitoredResource, self).__init__(**kwargs) - self.id = kwargs.get('id', None) - self.sending_metrics = kwargs.get('sending_metrics', None) - self.reason_for_metrics_status = kwargs.get('reason_for_metrics_status', None) - self.sending_logs = kwargs.get('sending_logs', None) - self.reason_for_logs_status = kwargs.get('reason_for_logs_status', None) - - -class MonitoredResourceListResponse(msrest.serialization.Model): - """Response of a list operation. - - :param value: Results of a list operation. - :type value: list[~microsoft_datadog_client.models.MonitoredResource] - :param next_link: Link to the next set of results, if any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[MonitoredResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(MonitoredResourceListResponse, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = kwargs.get('next_link', None) - - -class MonitoringTagRules(msrest.serialization.Model): - """Capture logs and metrics of Azure resources based on ARM tags. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar name: Name of the rule set. - :vartype name: str - :ivar id: The id of the rule set. - :vartype id: str - :ivar type: The type of the rule set. - :vartype type: str - :param properties: Definition of the properties for a TagRules resource. - :type properties: ~microsoft_datadog_client.models.MonitoringTagRulesProperties - :ivar system_data: Metadata pertaining to creation and last modification of the resource. - :vartype system_data: ~microsoft_datadog_client.models.SystemData - """ - - _validation = { - 'name': {'readonly': True}, - 'id': {'readonly': True}, - 'type': {'readonly': True}, - 'system_data': {'readonly': True}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'properties': {'key': 'properties', 'type': 'MonitoringTagRulesProperties'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - } - - def __init__( - self, - **kwargs - ): - super(MonitoringTagRules, self).__init__(**kwargs) - self.name = None - self.id = None - self.type = None - self.properties = kwargs.get('properties', None) - self.system_data = None - - -class MonitoringTagRulesListResponse(msrest.serialization.Model): - """Response of a list operation. - - :param value: Results of a list operation. - :type value: list[~microsoft_datadog_client.models.MonitoringTagRules] - :param next_link: Link to the next set of results, if any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[MonitoringTagRules]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(MonitoringTagRulesListResponse, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = kwargs.get('next_link', None) - - -class MonitoringTagRulesProperties(msrest.serialization.Model): - """Definition of the properties for a TagRules resource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar provisioning_state: Possible values include: "Accepted", "Creating", "Updating", - "Deleting", "Succeeded", "Failed", "Canceled", "Deleted", "NotSpecified". - :vartype provisioning_state: str or ~microsoft_datadog_client.models.ProvisioningState - :param log_rules: Set of rules for sending logs for the Monitor resource. - :type log_rules: ~microsoft_datadog_client.models.LogRules - :param metric_rules: Set of rules for sending metrics for the Monitor resource. - :type metric_rules: ~microsoft_datadog_client.models.MetricRules - """ - - _validation = { - 'provisioning_state': {'readonly': True}, - } - - _attribute_map = { - 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, - 'log_rules': {'key': 'logRules', 'type': 'LogRules'}, - 'metric_rules': {'key': 'metricRules', 'type': 'MetricRules'}, - } - - def __init__( - self, - **kwargs - ): - super(MonitoringTagRulesProperties, self).__init__(**kwargs) - self.provisioning_state = None - self.log_rules = kwargs.get('log_rules', None) - self.metric_rules = kwargs.get('metric_rules', None) - - -class MonitorProperties(msrest.serialization.Model): - """Properties specific to the monitor resource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar provisioning_state: Possible values include: "Accepted", "Creating", "Updating", - "Deleting", "Succeeded", "Failed", "Canceled", "Deleted", "NotSpecified". - :vartype provisioning_state: str or ~microsoft_datadog_client.models.ProvisioningState - :param monitoring_status: Flag specifying if the resource monitoring is enabled or disabled. - Possible values include: "Enabled", "Disabled". Default value: "Enabled". - :type monitoring_status: str or ~microsoft_datadog_client.models.MonitoringStatus - :ivar marketplace_subscription_status: Flag specifying the Marketplace Subscription Status of - the resource. If payment is not made in time, the resource will go in Suspended state. Possible - values include: "Provisioning", "Active", "Suspended", "Unsubscribed". - :vartype marketplace_subscription_status: str or - ~microsoft_datadog_client.models.MarketplaceSubscriptionStatus - :param datadog_organization_properties: Datadog organization properties. - :type datadog_organization_properties: - ~microsoft_datadog_client.models.DatadogOrganizationProperties - :param user_info: User info. - :type user_info: ~microsoft_datadog_client.models.UserInfo - :ivar liftr_resource_category: Possible values include: "Unknown", "MonitorLogs". - :vartype liftr_resource_category: str or - ~microsoft_datadog_client.models.LiftrResourceCategories - :ivar liftr_resource_preference: The priority of the resource. - :vartype liftr_resource_preference: int - """ - - _validation = { - 'provisioning_state': {'readonly': True}, - 'marketplace_subscription_status': {'readonly': True}, - 'liftr_resource_category': {'readonly': True}, - 'liftr_resource_preference': {'readonly': True}, - } - - _attribute_map = { - 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, - 'monitoring_status': {'key': 'monitoringStatus', 'type': 'str'}, - 'marketplace_subscription_status': {'key': 'marketplaceSubscriptionStatus', 'type': 'str'}, - 'datadog_organization_properties': {'key': 'datadogOrganizationProperties', 'type': 'DatadogOrganizationProperties'}, - 'user_info': {'key': 'userInfo', 'type': 'UserInfo'}, - 'liftr_resource_category': {'key': 'liftrResourceCategory', 'type': 'str'}, - 'liftr_resource_preference': {'key': 'liftrResourcePreference', 'type': 'int'}, - } - - def __init__( - self, - **kwargs - ): - super(MonitorProperties, self).__init__(**kwargs) - self.provisioning_state = None - self.monitoring_status = kwargs.get('monitoring_status', "Enabled") - self.marketplace_subscription_status = None - self.datadog_organization_properties = kwargs.get('datadog_organization_properties', None) - self.user_info = kwargs.get('user_info', None) - self.liftr_resource_category = None - self.liftr_resource_preference = None - - -class MonitorUpdateProperties(msrest.serialization.Model): - """The set of properties that can be update in a PATCH request to a monitor resource. - - :param monitoring_status: Flag specifying if the resource monitoring is enabled or disabled. - Possible values include: "Enabled", "Disabled". Default value: "Enabled". - :type monitoring_status: str or ~microsoft_datadog_client.models.MonitoringStatus - """ - - _attribute_map = { - 'monitoring_status': {'key': 'monitoringStatus', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(MonitorUpdateProperties, self).__init__(**kwargs) - self.monitoring_status = kwargs.get('monitoring_status', "Enabled") - - -class OperationDisplay(msrest.serialization.Model): - """The object that represents the operation. - - :param provider: Service provider, i.e., Microsoft.Datadog. - :type provider: str - :param resource: Type on which the operation is performed, e.g., 'monitors'. - :type resource: str - :param operation: Operation type, e.g., read, write, delete, etc. - :type operation: str - :param description: Description of the operation, e.g., 'Write monitors'. - :type description: str - """ - - _attribute_map = { - 'provider': {'key': 'provider', 'type': 'str'}, - 'resource': {'key': 'resource', 'type': 'str'}, - 'operation': {'key': 'operation', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(OperationDisplay, self).__init__(**kwargs) - self.provider = kwargs.get('provider', None) - self.resource = kwargs.get('resource', None) - self.operation = kwargs.get('operation', None) - self.description = kwargs.get('description', None) - - -class OperationListResult(msrest.serialization.Model): - """Result of GET request to list the Microsoft.Datadog operations. - - :param value: List of operations supported by the Microsoft.Datadog provider. - :type value: list[~microsoft_datadog_client.models.OperationResult] - :param next_link: URL to get the next set of operation list results if there are any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[OperationResult]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(OperationListResult, self).__init__(**kwargs) - self.value = kwargs.get('value', None) - self.next_link = kwargs.get('next_link', None) - - -class OperationResult(msrest.serialization.Model): - """A Microsoft.Datadog REST API operation. - - :param name: Operation name, i.e., {provider}/{resource}/{operation}. - :type name: str - :param display: The object that represents the operation. - :type display: ~microsoft_datadog_client.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__( - self, - **kwargs - ): - 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 ResourceSku(msrest.serialization.Model): - """ResourceSku. - - All required parameters must be populated in order to send to Azure. - - :param name: Required. Name of the SKU. - :type name: str - """ - - _validation = { - 'name': {'required': True}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(ResourceSku, self).__init__(**kwargs) - self.name = kwargs['name'] - - -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 ~microsoft_datadog_client.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 ~microsoft_datadog_client.models.CreatedByType - :param last_modified_at: The timestamp of resource last modification (UTC). - :type last_modified_at: ~datetime.datetime - """ - - _attribute_map = { - '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(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 UserInfo(msrest.serialization.Model): - """User info. - - :param name: Name of the user. - :type name: str - :param email_address: Email of the user used by Datadog for contacting them if needed. - :type email_address: str - :param phone_number: Phone number of the user used by Datadog for contacting them if needed. - :type phone_number: str - """ - - _validation = { - 'name': {'max_length': 50, 'min_length': 0}, - 'email_address': {'pattern': r'^[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9-]+\.)+[A-Za-z]{2,}$'}, - 'phone_number': {'max_length': 40, 'min_length': 0}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'email_address': {'key': 'emailAddress', 'type': 'str'}, - 'phone_number': {'key': 'phoneNumber', 'type': 'str'}, - } - - def __init__( - self, - **kwargs - ): - super(UserInfo, self).__init__(**kwargs) - self.name = kwargs.get('name', None) - self.email_address = kwargs.get('email_address', None) - self.phone_number = kwargs.get('phone_number', None) diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/models/_models_py3.py b/src/datadog/azext_datadog/vendored_sdks/datadog/models/_models_py3.py deleted file mode 100644 index ee88c8f4fa6..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/models/_models_py3.py +++ /dev/null @@ -1,1426 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -import datetime -from typing import Dict, List, Optional, Union - -from azure.core.exceptions import HttpResponseError -import msrest.serialization - -from ._microsoft_datadog_client_enums import * - - -class DatadogAgreementProperties(msrest.serialization.Model): - """Terms properties. - - :param publisher: Publisher identifier string. - :type publisher: str - :param product: Product identifier string. - :type product: str - :param plan: Plan identifier string. - :type plan: str - :param license_text_link: Link to HTML with Microsoft and Publisher terms. - :type license_text_link: str - :param privacy_policy_link: Link to the privacy policy of the publisher. - :type privacy_policy_link: str - :param retrieve_datetime: Date and time in UTC of when the terms were accepted. This is empty - if Accepted is false. - :type retrieve_datetime: ~datetime.datetime - :param signature: Terms signature. - :type signature: str - :param accepted: If any version of the terms have been accepted, otherwise false. - :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, - *, - publisher: Optional[str] = None, - product: Optional[str] = None, - plan: Optional[str] = None, - license_text_link: Optional[str] = None, - privacy_policy_link: Optional[str] = None, - retrieve_datetime: Optional[datetime.datetime] = None, - signature: Optional[str] = None, - accepted: Optional[bool] = None, - **kwargs - ): - super(DatadogAgreementProperties, self).__init__(**kwargs) - self.publisher = publisher - self.product = product - self.plan = plan - self.license_text_link = license_text_link - self.privacy_policy_link = privacy_policy_link - self.retrieve_datetime = retrieve_datetime - self.signature = signature - self.accepted = accepted - - -class DatadogAgreementResource(msrest.serialization.Model): - """DatadogAgreementResource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: ARM id of the resource. - :vartype id: str - :ivar name: Name of the agreement. - :vartype name: str - :ivar type: The type of the resource. - :vartype type: str - :param properties: Represents the properties of the resource. - :type properties: ~microsoft_datadog_client.models.DatadogAgreementProperties - :ivar system_data: Metadata pertaining to creation and last modification of the resource. - :vartype system_data: ~microsoft_datadog_client.models.SystemData - """ - - _validation = { - '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'}, - 'properties': {'key': 'properties', 'type': 'DatadogAgreementProperties'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - } - - def __init__( - self, - *, - properties: Optional["DatadogAgreementProperties"] = None, - **kwargs - ): - super(DatadogAgreementResource, self).__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.properties = properties - self.system_data = None - - -class DatadogAgreementResourceListResponse(msrest.serialization.Model): - """Response of a list operation. - - :param value: Results of a list operation. - :type value: list[~microsoft_datadog_client.models.DatadogAgreementResource] - :param next_link: Link to the next set of results, if any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[DatadogAgreementResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - *, - value: Optional[List["DatadogAgreementResource"]] = None, - next_link: Optional[str] = None, - **kwargs - ): - super(DatadogAgreementResourceListResponse, self).__init__(**kwargs) - self.value = value - self.next_link = next_link - - -class DatadogApiKey(msrest.serialization.Model): - """DatadogApiKey. - - All required parameters must be populated in order to send to Azure. - - :param created_by: The user that created the API key. - :type created_by: str - :param name: The name of the API key. - :type name: str - :param key: Required. The value of the API key. - :type key: str - :param created: The time of creation of the API key. - :type created: str - """ - - _validation = { - 'key': {'required': True}, - } - - _attribute_map = { - 'created_by': {'key': 'createdBy', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'key': {'key': 'key', 'type': 'str'}, - 'created': {'key': 'created', 'type': 'str'}, - } - - def __init__( - self, - *, - key: str, - created_by: Optional[str] = None, - name: Optional[str] = None, - created: Optional[str] = None, - **kwargs - ): - super(DatadogApiKey, self).__init__(**kwargs) - self.created_by = created_by - self.name = name - self.key = key - self.created = created - - -class DatadogApiKeyListResponse(msrest.serialization.Model): - """Response of a list operation. - - :param value: Results of a list operation. - :type value: list[~microsoft_datadog_client.models.DatadogApiKey] - :param next_link: Link to the next set of results, if any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[DatadogApiKey]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - *, - value: Optional[List["DatadogApiKey"]] = None, - next_link: Optional[str] = None, - **kwargs - ): - super(DatadogApiKeyListResponse, self).__init__(**kwargs) - self.value = value - self.next_link = next_link - - -class DatadogHost(msrest.serialization.Model): - """DatadogHost. - - :param name: The name of the host. - :type name: str - :param aliases: The aliases for the host. - :type aliases: list[str] - :param apps: The Datadog integrations reporting metrics for the host. - :type apps: list[str] - :param meta: - :type meta: ~microsoft_datadog_client.models.DatadogHostMetadata - """ - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'aliases': {'key': 'aliases', 'type': '[str]'}, - 'apps': {'key': 'apps', 'type': '[str]'}, - 'meta': {'key': 'meta', 'type': 'DatadogHostMetadata'}, - } - - def __init__( - self, - *, - name: Optional[str] = None, - aliases: Optional[List[str]] = None, - apps: Optional[List[str]] = None, - meta: Optional["DatadogHostMetadata"] = None, - **kwargs - ): - super(DatadogHost, self).__init__(**kwargs) - self.name = name - self.aliases = aliases - self.apps = apps - self.meta = meta - - -class DatadogHostListResponse(msrest.serialization.Model): - """Response of a list operation. - - :param value: Results of a list operation. - :type value: list[~microsoft_datadog_client.models.DatadogHost] - :param next_link: Link to the next set of results, if any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[DatadogHost]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - *, - value: Optional[List["DatadogHost"]] = None, - next_link: Optional[str] = None, - **kwargs - ): - super(DatadogHostListResponse, self).__init__(**kwargs) - self.value = value - self.next_link = next_link - - -class DatadogHostMetadata(msrest.serialization.Model): - """DatadogHostMetadata. - - :param agent_version: The agent version. - :type agent_version: str - :param install_method: - :type install_method: ~microsoft_datadog_client.models.DatadogInstallMethod - :param logs_agent: - :type logs_agent: ~microsoft_datadog_client.models.DatadogLogsAgent - """ - - _attribute_map = { - 'agent_version': {'key': 'agentVersion', 'type': 'str'}, - 'install_method': {'key': 'installMethod', 'type': 'DatadogInstallMethod'}, - 'logs_agent': {'key': 'logsAgent', 'type': 'DatadogLogsAgent'}, - } - - def __init__( - self, - *, - agent_version: Optional[str] = None, - install_method: Optional["DatadogInstallMethod"] = None, - logs_agent: Optional["DatadogLogsAgent"] = None, - **kwargs - ): - super(DatadogHostMetadata, self).__init__(**kwargs) - self.agent_version = agent_version - self.install_method = install_method - self.logs_agent = logs_agent - - -class DatadogInstallMethod(msrest.serialization.Model): - """DatadogInstallMethod. - - :param tool: The tool. - :type tool: str - :param tool_version: The tool version. - :type tool_version: str - :param installer_version: The installer version. - :type installer_version: str - """ - - _attribute_map = { - 'tool': {'key': 'tool', 'type': 'str'}, - 'tool_version': {'key': 'toolVersion', 'type': 'str'}, - 'installer_version': {'key': 'installerVersion', 'type': 'str'}, - } - - def __init__( - self, - *, - tool: Optional[str] = None, - tool_version: Optional[str] = None, - installer_version: Optional[str] = None, - **kwargs - ): - super(DatadogInstallMethod, self).__init__(**kwargs) - self.tool = tool - self.tool_version = tool_version - self.installer_version = installer_version - - -class DatadogLogsAgent(msrest.serialization.Model): - """DatadogLogsAgent. - - :param transport: The transport. - :type transport: str - """ - - _attribute_map = { - 'transport': {'key': 'transport', 'type': 'str'}, - } - - def __init__( - self, - *, - transport: Optional[str] = None, - **kwargs - ): - super(DatadogLogsAgent, self).__init__(**kwargs) - self.transport = transport - - -class DatadogMonitorResource(msrest.serialization.Model): - """DatadogMonitorResource. - - 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: ARM id of the monitor resource. - :vartype id: str - :ivar name: Name of the monitor resource. - :vartype name: str - :ivar type: The type of the monitor resource. - :vartype type: str - :param sku: - :type sku: ~microsoft_datadog_client.models.ResourceSku - :param properties: Properties specific to the monitor resource. - :type properties: ~microsoft_datadog_client.models.MonitorProperties - :param identity: - :type identity: ~microsoft_datadog_client.models.IdentityProperties - :param tags: A set of tags. Dictionary of :code:``. - :type tags: dict[str, str] - :param location: Required. - :type location: str - :ivar system_data: Metadata pertaining to creation and last modification of the resource. - :vartype system_data: ~microsoft_datadog_client.models.SystemData - """ - - _validation = { - 'id': {'readonly': True}, - 'name': {'readonly': True}, - 'type': {'readonly': True}, - 'location': {'required': True}, - 'system_data': {'readonly': True}, - } - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'name': {'key': 'name', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'sku': {'key': 'sku', 'type': 'ResourceSku'}, - 'properties': {'key': 'properties', 'type': 'MonitorProperties'}, - 'identity': {'key': 'identity', 'type': 'IdentityProperties'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'location': {'key': 'location', 'type': 'str'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - } - - def __init__( - self, - *, - location: str, - sku: Optional["ResourceSku"] = None, - properties: Optional["MonitorProperties"] = None, - identity: Optional["IdentityProperties"] = None, - tags: Optional[Dict[str, str]] = None, - **kwargs - ): - super(DatadogMonitorResource, self).__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.sku = sku - self.properties = properties - self.identity = identity - self.tags = tags - self.location = location - self.system_data = None - - -class DatadogMonitorResourceListResponse(msrest.serialization.Model): - """Response of a list operation. - - :param value: Results of a list operation. - :type value: list[~microsoft_datadog_client.models.DatadogMonitorResource] - :param next_link: Link to the next set of results, if any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[DatadogMonitorResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - *, - value: Optional[List["DatadogMonitorResource"]] = None, - next_link: Optional[str] = None, - **kwargs - ): - super(DatadogMonitorResourceListResponse, self).__init__(**kwargs) - self.value = value - self.next_link = next_link - - -class DatadogMonitorResourceUpdateParameters(msrest.serialization.Model): - """The parameters for a PATCH request to a monitor resource. - - :param properties: The set of properties that can be update in a PATCH request to a monitor - resource. - :type properties: ~microsoft_datadog_client.models.MonitorUpdateProperties - :param tags: A set of tags. The new tags of the monitor resource. - :type tags: dict[str, str] - :param sku: - :type sku: ~microsoft_datadog_client.models.ResourceSku - """ - - _attribute_map = { - 'properties': {'key': 'properties', 'type': 'MonitorUpdateProperties'}, - 'tags': {'key': 'tags', 'type': '{str}'}, - 'sku': {'key': 'sku', 'type': 'ResourceSku'}, - } - - def __init__( - self, - *, - properties: Optional["MonitorUpdateProperties"] = None, - tags: Optional[Dict[str, str]] = None, - sku: Optional["ResourceSku"] = None, - **kwargs - ): - super(DatadogMonitorResourceUpdateParameters, self).__init__(**kwargs) - self.properties = properties - self.tags = tags - self.sku = sku - - -class DatadogOrganizationProperties(msrest.serialization.Model): - """Datadog organization properties. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar name: Name of the Datadog organization. - :vartype name: str - :ivar id: Id of the Datadog organization. - :vartype id: str - :param linking_auth_code: The auth code used to linking to an existing datadog organization. - :type linking_auth_code: str - :param linking_client_id: The client_id from an existing in exchange for an auth token to link - organization. - :type linking_client_id: str - :param redirect_uri: The redirect uri for linking. - :type redirect_uri: str - :param api_key: Api key associated to the Datadog organization. - :type api_key: str - :param application_key: Application key associated to the Datadog organization. - :type application_key: str - :param enterprise_app_id: The Id of the Enterprise App used for Single sign on. - :type enterprise_app_id: str - """ - - _validation = { - 'name': {'readonly': True}, - 'id': {'readonly': True}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'linking_auth_code': {'key': 'linkingAuthCode', 'type': 'str'}, - 'linking_client_id': {'key': 'linkingClientId', 'type': 'str'}, - 'redirect_uri': {'key': 'redirectUri', 'type': 'str'}, - 'api_key': {'key': 'apiKey', 'type': 'str'}, - 'application_key': {'key': 'applicationKey', 'type': 'str'}, - 'enterprise_app_id': {'key': 'enterpriseAppId', 'type': 'str'}, - } - - def __init__( - self, - *, - linking_auth_code: Optional[str] = None, - linking_client_id: Optional[str] = None, - redirect_uri: Optional[str] = None, - api_key: Optional[str] = None, - application_key: Optional[str] = None, - enterprise_app_id: Optional[str] = None, - **kwargs - ): - super(DatadogOrganizationProperties, self).__init__(**kwargs) - self.name = None - self.id = None - self.linking_auth_code = linking_auth_code - self.linking_client_id = linking_client_id - self.redirect_uri = redirect_uri - self.api_key = api_key - self.application_key = application_key - self.enterprise_app_id = enterprise_app_id - - -class DatadogSetPasswordLink(msrest.serialization.Model): - """DatadogSetPasswordLink. - - :param set_password_link: - :type set_password_link: str - """ - - _attribute_map = { - 'set_password_link': {'key': 'setPasswordLink', 'type': 'str'}, - } - - def __init__( - self, - *, - set_password_link: Optional[str] = None, - **kwargs - ): - super(DatadogSetPasswordLink, self).__init__(**kwargs) - self.set_password_link = set_password_link - - -class DatadogSingleSignOnProperties(msrest.serialization.Model): - """DatadogSingleSignOnProperties. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar provisioning_state: Possible values include: "Accepted", "Creating", "Updating", - "Deleting", "Succeeded", "Failed", "Canceled", "Deleted", "NotSpecified". - :vartype provisioning_state: str or ~microsoft_datadog_client.models.ProvisioningState - :param single_sign_on_state: Various states of the SSO resource. Possible values include: - "Initial", "Enable", "Disable", "Existing". - :type single_sign_on_state: str or ~microsoft_datadog_client.models.SingleSignOnStates - :param enterprise_app_id: The Id of the Enterprise App used for Single sign-on. - :type enterprise_app_id: str - :ivar single_sign_on_url: The login URL specific to this Datadog Organization. - :vartype single_sign_on_url: str - """ - - _validation = { - 'provisioning_state': {'readonly': True}, - 'single_sign_on_url': {'readonly': True}, - } - - _attribute_map = { - 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, - 'single_sign_on_state': {'key': 'singleSignOnState', 'type': 'str'}, - 'enterprise_app_id': {'key': 'enterpriseAppId', 'type': 'str'}, - 'single_sign_on_url': {'key': 'singleSignOnUrl', 'type': 'str'}, - } - - def __init__( - self, - *, - single_sign_on_state: Optional[Union[str, "SingleSignOnStates"]] = None, - enterprise_app_id: Optional[str] = None, - **kwargs - ): - super(DatadogSingleSignOnProperties, self).__init__(**kwargs) - self.provisioning_state = None - self.single_sign_on_state = single_sign_on_state - self.enterprise_app_id = enterprise_app_id - self.single_sign_on_url = None - - -class DatadogSingleSignOnResource(msrest.serialization.Model): - """DatadogSingleSignOnResource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar id: ARM id of the resource. - :vartype id: str - :ivar name: Name of the configuration. - :vartype name: str - :ivar type: The type of the resource. - :vartype type: str - :param properties: - :type properties: ~microsoft_datadog_client.models.DatadogSingleSignOnProperties - :ivar system_data: Metadata pertaining to creation and last modification of the resource. - :vartype system_data: ~microsoft_datadog_client.models.SystemData - """ - - _validation = { - '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'}, - 'properties': {'key': 'properties', 'type': 'DatadogSingleSignOnProperties'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - } - - def __init__( - self, - *, - properties: Optional["DatadogSingleSignOnProperties"] = None, - **kwargs - ): - super(DatadogSingleSignOnResource, self).__init__(**kwargs) - self.id = None - self.name = None - self.type = None - self.properties = properties - self.system_data = None - - -class DatadogSingleSignOnResourceListResponse(msrest.serialization.Model): - """Response of a list operation. - - :param value: Results of a list operation. - :type value: list[~microsoft_datadog_client.models.DatadogSingleSignOnResource] - :param next_link: Link to the next set of results, if any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[DatadogSingleSignOnResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - *, - value: Optional[List["DatadogSingleSignOnResource"]] = None, - next_link: Optional[str] = None, - **kwargs - ): - super(DatadogSingleSignOnResourceListResponse, self).__init__(**kwargs) - self.value = value - self.next_link = next_link - - -class ErrorAdditionalInfo(msrest.serialization.Model): - """The resource management error additional info. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar type: The additional info type. - :vartype type: str - :ivar info: The additional info. - :vartype info: object - """ - - _validation = { - 'type': {'readonly': True}, - 'info': {'readonly': True}, - } - - _attribute_map = { - 'type': {'key': 'type', 'type': 'str'}, - 'info': {'key': 'info', 'type': 'object'}, - } - - def __init__( - self, - **kwargs - ): - super(ErrorAdditionalInfo, self).__init__(**kwargs) - self.type = None - self.info = None - - -class ErrorDetail(msrest.serialization.Model): - """The error detail. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar code: The error code. - :vartype code: str - :ivar message: The error message. - :vartype message: str - :ivar target: The error target. - :vartype target: str - :ivar details: The error details. - :vartype details: list[~microsoft_datadog_client.models.ErrorDetail] - :ivar additional_info: The error additional info. - :vartype additional_info: list[~microsoft_datadog_client.models.ErrorAdditionalInfo] - """ - - _validation = { - 'code': {'readonly': True}, - 'message': {'readonly': True}, - 'target': {'readonly': True}, - 'details': {'readonly': True}, - 'additional_info': {'readonly': True}, - } - - _attribute_map = { - 'code': {'key': 'code', 'type': 'str'}, - 'message': {'key': 'message', 'type': 'str'}, - 'target': {'key': 'target', 'type': 'str'}, - 'details': {'key': 'details', 'type': '[ErrorDetail]'}, - 'additional_info': {'key': 'additionalInfo', 'type': '[ErrorAdditionalInfo]'}, - } - - def __init__( - self, - **kwargs - ): - super(ErrorDetail, self).__init__(**kwargs) - self.code = None - self.message = None - self.target = None - self.details = None - self.additional_info = None - - -class ErrorResponse(msrest.serialization.Model): - """Common error response for all Azure Resource Manager APIs to return error details for failed operations. (This also follows the OData error response format.). - - :param error: The error object. - :type error: ~microsoft_datadog_client.models.ErrorDetail - """ - - _attribute_map = { - 'error': {'key': 'error', 'type': 'ErrorDetail'}, - } - - def __init__( - self, - *, - error: Optional["ErrorDetail"] = None, - **kwargs - ): - super(ErrorResponse, self).__init__(**kwargs) - self.error = error - - -class FilteringTag(msrest.serialization.Model): - """The definition of a filtering tag. Filtering tags are used for capturing resources and include/exclude them from being monitored. - - :param name: The name (also known as the key) of the tag. - :type name: str - :param value: The value of the tag. - :type value: str - :param action: Valid actions for a filtering tag. Exclusion takes priority over inclusion. - Possible values include: "Include", "Exclude". - :type action: str or ~microsoft_datadog_client.models.TagAction - """ - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'value': {'key': 'value', 'type': 'str'}, - 'action': {'key': 'action', 'type': 'str'}, - } - - def __init__( - self, - *, - name: Optional[str] = None, - value: Optional[str] = None, - action: Optional[Union[str, "TagAction"]] = None, - **kwargs - ): - super(FilteringTag, self).__init__(**kwargs) - self.name = name - self.value = value - self.action = action - - -class IdentityProperties(msrest.serialization.Model): - """IdentityProperties. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar principal_id: The identity ID. - :vartype principal_id: str - :ivar tenant_id: The tenant ID of resource. - :vartype tenant_id: str - :param type: Identity type. Possible values include: "SystemAssigned", "UserAssigned". - :type type: str or ~microsoft_datadog_client.models.ManagedIdentityTypes - """ - - _validation = { - 'principal_id': {'readonly': True}, - 'tenant_id': {'readonly': True}, - } - - _attribute_map = { - 'principal_id': {'key': 'principalId', 'type': 'str'}, - 'tenant_id': {'key': 'tenantId', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - } - - def __init__( - self, - *, - type: Optional[Union[str, "ManagedIdentityTypes"]] = None, - **kwargs - ): - super(IdentityProperties, self).__init__(**kwargs) - self.principal_id = None - self.tenant_id = None - self.type = type - - -class LinkedResource(msrest.serialization.Model): - """The definition of a linked resource. - - :param id: The ARM id of the linked resource. - :type id: str - """ - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - } - - def __init__( - self, - *, - id: Optional[str] = None, - **kwargs - ): - super(LinkedResource, self).__init__(**kwargs) - self.id = id - - -class LinkedResourceListResponse(msrest.serialization.Model): - """Response of a list operation. - - :param value: Results of a list operation. - :type value: list[~microsoft_datadog_client.models.LinkedResource] - :param next_link: Link to the next set of results, if any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[LinkedResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - *, - value: Optional[List["LinkedResource"]] = None, - next_link: Optional[str] = None, - **kwargs - ): - super(LinkedResourceListResponse, self).__init__(**kwargs) - self.value = value - self.next_link = next_link - - -class LogRules(msrest.serialization.Model): - """Set of rules for sending logs for the Monitor resource. - - :param send_aad_logs: Flag specifying if AAD logs should be sent for the Monitor resource. - :type send_aad_logs: bool - :param send_subscription_logs: Flag specifying if Azure subscription logs should be sent for - the Monitor resource. - :type send_subscription_logs: bool - :param send_resource_logs: Flag specifying if Azure resource logs should be sent for the - Monitor resource. - :type send_resource_logs: bool - :param filtering_tags: List of filtering tags to be used for capturing logs. This only takes - effect if SendResourceLogs flag is enabled. If empty, all resources will be captured. If only - Exclude action is specified, the rules will apply to the list of all available resources. If - Include actions are specified, the rules will only include resources with the associated tags. - :type filtering_tags: list[~microsoft_datadog_client.models.FilteringTag] - """ - - _attribute_map = { - 'send_aad_logs': {'key': 'sendAadLogs', 'type': 'bool'}, - 'send_subscription_logs': {'key': 'sendSubscriptionLogs', 'type': 'bool'}, - 'send_resource_logs': {'key': 'sendResourceLogs', 'type': 'bool'}, - 'filtering_tags': {'key': 'filteringTags', 'type': '[FilteringTag]'}, - } - - def __init__( - self, - *, - send_aad_logs: Optional[bool] = None, - send_subscription_logs: Optional[bool] = None, - send_resource_logs: Optional[bool] = None, - filtering_tags: Optional[List["FilteringTag"]] = None, - **kwargs - ): - super(LogRules, self).__init__(**kwargs) - self.send_aad_logs = send_aad_logs - self.send_subscription_logs = send_subscription_logs - self.send_resource_logs = send_resource_logs - self.filtering_tags = filtering_tags - - -class MetricRules(msrest.serialization.Model): - """Set of rules for sending metrics for the Monitor resource. - - :param filtering_tags: List of filtering tags to be used for capturing metrics. If empty, all - resources will be captured. If only Exclude action is specified, the rules will apply to the - list of all available resources. If Include actions are specified, the rules will only include - resources with the associated tags. - :type filtering_tags: list[~microsoft_datadog_client.models.FilteringTag] - """ - - _attribute_map = { - 'filtering_tags': {'key': 'filteringTags', 'type': '[FilteringTag]'}, - } - - def __init__( - self, - *, - filtering_tags: Optional[List["FilteringTag"]] = None, - **kwargs - ): - super(MetricRules, self).__init__(**kwargs) - self.filtering_tags = filtering_tags - - -class MonitoredResource(msrest.serialization.Model): - """The properties of a resource currently being monitored by the Datadog monitor resource. - - :param id: The ARM id of the resource. - :type id: str - :param sending_metrics: Flag indicating if resource is sending metrics to Datadog. - :type sending_metrics: bool - :param reason_for_metrics_status: Reason for why the resource is sending metrics (or why it is - not sending). - :type reason_for_metrics_status: str - :param sending_logs: Flag indicating if resource is sending logs to Datadog. - :type sending_logs: bool - :param reason_for_logs_status: Reason for why the resource is sending logs (or why it is not - sending). - :type reason_for_logs_status: str - """ - - _attribute_map = { - 'id': {'key': 'id', 'type': 'str'}, - 'sending_metrics': {'key': 'sendingMetrics', 'type': 'bool'}, - 'reason_for_metrics_status': {'key': 'reasonForMetricsStatus', 'type': 'str'}, - 'sending_logs': {'key': 'sendingLogs', 'type': 'bool'}, - 'reason_for_logs_status': {'key': 'reasonForLogsStatus', 'type': 'str'}, - } - - def __init__( - self, - *, - id: Optional[str] = None, - sending_metrics: Optional[bool] = None, - reason_for_metrics_status: Optional[str] = None, - sending_logs: Optional[bool] = None, - reason_for_logs_status: Optional[str] = None, - **kwargs - ): - super(MonitoredResource, self).__init__(**kwargs) - self.id = id - self.sending_metrics = sending_metrics - self.reason_for_metrics_status = reason_for_metrics_status - self.sending_logs = sending_logs - self.reason_for_logs_status = reason_for_logs_status - - -class MonitoredResourceListResponse(msrest.serialization.Model): - """Response of a list operation. - - :param value: Results of a list operation. - :type value: list[~microsoft_datadog_client.models.MonitoredResource] - :param next_link: Link to the next set of results, if any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[MonitoredResource]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - *, - value: Optional[List["MonitoredResource"]] = None, - next_link: Optional[str] = None, - **kwargs - ): - super(MonitoredResourceListResponse, self).__init__(**kwargs) - self.value = value - self.next_link = next_link - - -class MonitoringTagRules(msrest.serialization.Model): - """Capture logs and metrics of Azure resources based on ARM tags. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar name: Name of the rule set. - :vartype name: str - :ivar id: The id of the rule set. - :vartype id: str - :ivar type: The type of the rule set. - :vartype type: str - :param properties: Definition of the properties for a TagRules resource. - :type properties: ~microsoft_datadog_client.models.MonitoringTagRulesProperties - :ivar system_data: Metadata pertaining to creation and last modification of the resource. - :vartype system_data: ~microsoft_datadog_client.models.SystemData - """ - - _validation = { - 'name': {'readonly': True}, - 'id': {'readonly': True}, - 'type': {'readonly': True}, - 'system_data': {'readonly': True}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'id': {'key': 'id', 'type': 'str'}, - 'type': {'key': 'type', 'type': 'str'}, - 'properties': {'key': 'properties', 'type': 'MonitoringTagRulesProperties'}, - 'system_data': {'key': 'systemData', 'type': 'SystemData'}, - } - - def __init__( - self, - *, - properties: Optional["MonitoringTagRulesProperties"] = None, - **kwargs - ): - super(MonitoringTagRules, self).__init__(**kwargs) - self.name = None - self.id = None - self.type = None - self.properties = properties - self.system_data = None - - -class MonitoringTagRulesListResponse(msrest.serialization.Model): - """Response of a list operation. - - :param value: Results of a list operation. - :type value: list[~microsoft_datadog_client.models.MonitoringTagRules] - :param next_link: Link to the next set of results, if any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[MonitoringTagRules]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - *, - value: Optional[List["MonitoringTagRules"]] = None, - next_link: Optional[str] = None, - **kwargs - ): - super(MonitoringTagRulesListResponse, self).__init__(**kwargs) - self.value = value - self.next_link = next_link - - -class MonitoringTagRulesProperties(msrest.serialization.Model): - """Definition of the properties for a TagRules resource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar provisioning_state: Possible values include: "Accepted", "Creating", "Updating", - "Deleting", "Succeeded", "Failed", "Canceled", "Deleted", "NotSpecified". - :vartype provisioning_state: str or ~microsoft_datadog_client.models.ProvisioningState - :param log_rules: Set of rules for sending logs for the Monitor resource. - :type log_rules: ~microsoft_datadog_client.models.LogRules - :param metric_rules: Set of rules for sending metrics for the Monitor resource. - :type metric_rules: ~microsoft_datadog_client.models.MetricRules - """ - - _validation = { - 'provisioning_state': {'readonly': True}, - } - - _attribute_map = { - 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, - 'log_rules': {'key': 'logRules', 'type': 'LogRules'}, - 'metric_rules': {'key': 'metricRules', 'type': 'MetricRules'}, - } - - def __init__( - self, - *, - log_rules: Optional["LogRules"] = None, - metric_rules: Optional["MetricRules"] = None, - **kwargs - ): - super(MonitoringTagRulesProperties, self).__init__(**kwargs) - self.provisioning_state = None - self.log_rules = log_rules - self.metric_rules = metric_rules - - -class MonitorProperties(msrest.serialization.Model): - """Properties specific to the monitor resource. - - Variables are only populated by the server, and will be ignored when sending a request. - - :ivar provisioning_state: Possible values include: "Accepted", "Creating", "Updating", - "Deleting", "Succeeded", "Failed", "Canceled", "Deleted", "NotSpecified". - :vartype provisioning_state: str or ~microsoft_datadog_client.models.ProvisioningState - :param monitoring_status: Flag specifying if the resource monitoring is enabled or disabled. - Possible values include: "Enabled", "Disabled". Default value: "Enabled". - :type monitoring_status: str or ~microsoft_datadog_client.models.MonitoringStatus - :ivar marketplace_subscription_status: Flag specifying the Marketplace Subscription Status of - the resource. If payment is not made in time, the resource will go in Suspended state. Possible - values include: "Provisioning", "Active", "Suspended", "Unsubscribed". - :vartype marketplace_subscription_status: str or - ~microsoft_datadog_client.models.MarketplaceSubscriptionStatus - :param datadog_organization_properties: Datadog organization properties. - :type datadog_organization_properties: - ~microsoft_datadog_client.models.DatadogOrganizationProperties - :param user_info: User info. - :type user_info: ~microsoft_datadog_client.models.UserInfo - :ivar liftr_resource_category: Possible values include: "Unknown", "MonitorLogs". - :vartype liftr_resource_category: str or - ~microsoft_datadog_client.models.LiftrResourceCategories - :ivar liftr_resource_preference: The priority of the resource. - :vartype liftr_resource_preference: int - """ - - _validation = { - 'provisioning_state': {'readonly': True}, - 'marketplace_subscription_status': {'readonly': True}, - 'liftr_resource_category': {'readonly': True}, - 'liftr_resource_preference': {'readonly': True}, - } - - _attribute_map = { - 'provisioning_state': {'key': 'provisioningState', 'type': 'str'}, - 'monitoring_status': {'key': 'monitoringStatus', 'type': 'str'}, - 'marketplace_subscription_status': {'key': 'marketplaceSubscriptionStatus', 'type': 'str'}, - 'datadog_organization_properties': {'key': 'datadogOrganizationProperties', 'type': 'DatadogOrganizationProperties'}, - 'user_info': {'key': 'userInfo', 'type': 'UserInfo'}, - 'liftr_resource_category': {'key': 'liftrResourceCategory', 'type': 'str'}, - 'liftr_resource_preference': {'key': 'liftrResourcePreference', 'type': 'int'}, - } - - def __init__( - self, - *, - monitoring_status: Optional[Union[str, "MonitoringStatus"]] = "Enabled", - datadog_organization_properties: Optional["DatadogOrganizationProperties"] = None, - user_info: Optional["UserInfo"] = None, - **kwargs - ): - super(MonitorProperties, self).__init__(**kwargs) - self.provisioning_state = None - self.monitoring_status = monitoring_status - self.marketplace_subscription_status = None - self.datadog_organization_properties = datadog_organization_properties - self.user_info = user_info - self.liftr_resource_category = None - self.liftr_resource_preference = None - - -class MonitorUpdateProperties(msrest.serialization.Model): - """The set of properties that can be update in a PATCH request to a monitor resource. - - :param monitoring_status: Flag specifying if the resource monitoring is enabled or disabled. - Possible values include: "Enabled", "Disabled". Default value: "Enabled". - :type monitoring_status: str or ~microsoft_datadog_client.models.MonitoringStatus - """ - - _attribute_map = { - 'monitoring_status': {'key': 'monitoringStatus', 'type': 'str'}, - } - - def __init__( - self, - *, - monitoring_status: Optional[Union[str, "MonitoringStatus"]] = "Enabled", - **kwargs - ): - super(MonitorUpdateProperties, self).__init__(**kwargs) - self.monitoring_status = monitoring_status - - -class OperationDisplay(msrest.serialization.Model): - """The object that represents the operation. - - :param provider: Service provider, i.e., Microsoft.Datadog. - :type provider: str - :param resource: Type on which the operation is performed, e.g., 'monitors'. - :type resource: str - :param operation: Operation type, e.g., read, write, delete, etc. - :type operation: str - :param description: Description of the operation, e.g., 'Write monitors'. - :type description: str - """ - - _attribute_map = { - 'provider': {'key': 'provider', 'type': 'str'}, - 'resource': {'key': 'resource', 'type': 'str'}, - 'operation': {'key': 'operation', 'type': 'str'}, - 'description': {'key': 'description', 'type': 'str'}, - } - - def __init__( - self, - *, - provider: Optional[str] = None, - resource: Optional[str] = None, - operation: Optional[str] = None, - description: Optional[str] = None, - **kwargs - ): - super(OperationDisplay, self).__init__(**kwargs) - self.provider = provider - self.resource = resource - self.operation = operation - self.description = description - - -class OperationListResult(msrest.serialization.Model): - """Result of GET request to list the Microsoft.Datadog operations. - - :param value: List of operations supported by the Microsoft.Datadog provider. - :type value: list[~microsoft_datadog_client.models.OperationResult] - :param next_link: URL to get the next set of operation list results if there are any. - :type next_link: str - """ - - _attribute_map = { - 'value': {'key': 'value', 'type': '[OperationResult]'}, - 'next_link': {'key': 'nextLink', 'type': 'str'}, - } - - def __init__( - self, - *, - value: Optional[List["OperationResult"]] = None, - next_link: Optional[str] = None, - **kwargs - ): - super(OperationListResult, self).__init__(**kwargs) - self.value = value - self.next_link = next_link - - -class OperationResult(msrest.serialization.Model): - """A Microsoft.Datadog REST API operation. - - :param name: Operation name, i.e., {provider}/{resource}/{operation}. - :type name: str - :param display: The object that represents the operation. - :type display: ~microsoft_datadog_client.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__( - self, - *, - 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 ResourceSku(msrest.serialization.Model): - """ResourceSku. - - All required parameters must be populated in order to send to Azure. - - :param name: Required. Name of the SKU. - :type name: str - """ - - _validation = { - 'name': {'required': True}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - } - - def __init__( - self, - *, - name: str, - **kwargs - ): - super(ResourceSku, self).__init__(**kwargs) - self.name = name - - -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 ~microsoft_datadog_client.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 ~microsoft_datadog_client.models.CreatedByType - :param last_modified_at: The timestamp of resource last modification (UTC). - :type last_modified_at: ~datetime.datetime - """ - - _attribute_map = { - '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, - *, - 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(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 UserInfo(msrest.serialization.Model): - """User info. - - :param name: Name of the user. - :type name: str - :param email_address: Email of the user used by Datadog for contacting them if needed. - :type email_address: str - :param phone_number: Phone number of the user used by Datadog for contacting them if needed. - :type phone_number: str - """ - - _validation = { - 'name': {'max_length': 50, 'min_length': 0}, - 'email_address': {'pattern': r'^[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9-]+\.)+[A-Za-z]{2,}$'}, - 'phone_number': {'max_length': 40, 'min_length': 0}, - } - - _attribute_map = { - 'name': {'key': 'name', 'type': 'str'}, - 'email_address': {'key': 'emailAddress', 'type': 'str'}, - 'phone_number': {'key': 'phoneNumber', 'type': 'str'}, - } - - def __init__( - self, - *, - name: Optional[str] = None, - email_address: Optional[str] = None, - phone_number: Optional[str] = None, - **kwargs - ): - super(UserInfo, self).__init__(**kwargs) - self.name = name - self.email_address = email_address - self.phone_number = phone_number diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/operations/__init__.py b/src/datadog/azext_datadog/vendored_sdks/datadog/operations/__init__.py deleted file mode 100644 index b2edc8eaf2d..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/operations/__init__.py +++ /dev/null @@ -1,21 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- - -from ._marketplace_agreements_operations import MarketplaceAgreementsOperations -from ._monitors_operations import MonitorsOperations -from ._operations import Operations -from ._tag_rules_operations import TagRulesOperations -from ._single_sign_on_configurations_operations import SingleSignOnConfigurationsOperations - -__all__ = [ - 'MarketplaceAgreementsOperations', - 'MonitorsOperations', - 'Operations', - 'TagRulesOperations', - 'SingleSignOnConfigurationsOperations', -] diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/operations/_marketplace_agreements_operations.py b/src/datadog/azext_datadog/vendored_sdks/datadog/operations/_marketplace_agreements_operations.py deleted file mode 100644 index 87cf37fcaf5..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/operations/_marketplace_agreements_operations.py +++ /dev/null @@ -1,181 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- -from typing import TYPE_CHECKING -import warnings - -from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error -from azure.core.paging import ItemPaged -from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse -from azure.mgmt.core.exceptions import ARMErrorFormat - -from .. import models - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class 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: ~microsoft_datadog_client.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. - """ - - models = models - - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config - - def list( - self, - **kwargs # type: Any - ): - # type: (...) -> Iterable["models.DatadogAgreementResourceListResponse"] - """List Datadog marketplace agreements in the subscription. - - List Datadog marketplace agreements in the subscription. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either DatadogAgreementResourceListResponse or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~microsoft_datadog_client.models.DatadogAgreementResourceListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogAgreementResourceListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize('DatadogAgreementResourceListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged( - get_next, extract_data - ) - list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Datadog/agreements'} # type: ignore - - def create_or_update( - self, - body=None, # type: Optional["models.DatadogAgreementResource"] - **kwargs # type: Any - ): - # type: (...) -> "models.DatadogAgreementResource" - """Create Datadog marketplace agreement in the subscription. - - Create Datadog marketplace agreement in the subscription. - - :param body: - :type body: ~microsoft_datadog_client.models.DatadogAgreementResource - :keyword callable cls: A custom type or function that will be passed the direct response - :return: DatadogAgreementResource, or the result of cls(response) - :rtype: ~microsoft_datadog_client.models.DatadogAgreementResource - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogAgreementResource"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self.create_or_update.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # 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] - if body is not None: - body_content = self._serialize.body(body, 'DatadogAgreementResource') - else: - body_content = None - body_content_kwargs['content'] = body_content - request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize('DatadogAgreementResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Datadog/agreements/default'} # type: ignore diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/operations/_monitors_operations.py b/src/datadog/azext_datadog/vendored_sdks/datadog/operations/_monitors_operations.py deleted file mode 100644 index 0606c2e954c..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/operations/_monitors_operations.py +++ /dev/null @@ -1,1145 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- -from typing import TYPE_CHECKING -import warnings - -from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error -from azure.core.paging import ItemPaged -from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse -from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.mgmt.core.exceptions import ARMErrorFormat -from azure.mgmt.core.polling.arm_polling import ARMPolling - -from .. import models - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class MonitorsOperations(object): - """MonitorsOperations 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: ~microsoft_datadog_client.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. - """ - - models = models - - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config - - def list_api_keys( - self, - resource_group_name, # type: str - monitor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> Iterable["models.DatadogApiKeyListResponse"] - """List the api keys for a given monitor resource. - - List the api keys for a given monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either DatadogApiKeyListResponse or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~microsoft_datadog_client.models.DatadogApiKeyListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogApiKeyListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list_api_keys.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.post(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize('DatadogApiKeyListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged( - get_next, extract_data - ) - list_api_keys.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/listApiKeys'} # type: ignore - - def get_default_key( - self, - resource_group_name, # type: str - monitor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "models.DatadogApiKey" - """Get the default api key. - - Get the default api key. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: DatadogApiKey, or the result of cls(response) - :rtype: ~microsoft_datadog_client.models.DatadogApiKey - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogApiKey"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - # Construct URL - url = self.get_default_key.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - request = self._client.post(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize('DatadogApiKey', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get_default_key.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/getDefaultKey'} # type: ignore - - def set_default_key( - self, - resource_group_name, # type: str - monitor_name, # type: str - body=None, # type: Optional["models.DatadogApiKey"] - **kwargs # type: Any - ): - # type: (...) -> None - """Set the default api key. - - Set the default api key. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :param body: - :type body: ~microsoft_datadog_client.models.DatadogApiKey - :keyword callable cls: A custom type or function that will be passed the direct response - :return: None, or the result of cls(response) - :rtype: None - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType[None] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self.set_default_key.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_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] - if body is not None: - body_content = self._serialize.body(body, 'DatadogApiKey') - else: - body_content = None - 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.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - set_default_key.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/setDefaultKey'} # type: ignore - - def list_hosts( - self, - resource_group_name, # type: str - monitor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> Iterable["models.DatadogHostListResponse"] - """List the hosts for a given monitor resource. - - List the hosts for a given monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either DatadogHostListResponse or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~microsoft_datadog_client.models.DatadogHostListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogHostListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list_hosts.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.post(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize('DatadogHostListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged( - get_next, extract_data - ) - list_hosts.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/listHosts'} # type: ignore - - def list_linked_resources( - self, - resource_group_name, # type: str - monitor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> Iterable["models.LinkedResourceListResponse"] - """List all Azure resources associated to the same Datadog organization as the target resource. - - List all Azure resources associated to the same Datadog organization as the target resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either LinkedResourceListResponse or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~microsoft_datadog_client.models.LinkedResourceListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.LinkedResourceListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list_linked_resources.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.post(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize('LinkedResourceListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged( - get_next, extract_data - ) - list_linked_resources.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/listLinkedResources'} # type: ignore - - def list_monitored_resources( - self, - resource_group_name, # type: str - monitor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> Iterable["models.MonitoredResourceListResponse"] - """List the resources currently being monitored by the Datadog monitor resource. - - List the resources currently being monitored by the Datadog monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either MonitoredResourceListResponse or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~microsoft_datadog_client.models.MonitoredResourceListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.MonitoredResourceListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list_monitored_resources.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.post(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize('MonitoredResourceListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged( - get_next, extract_data - ) - list_monitored_resources.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/listMonitoredResources'} # type: ignore - - def list( - self, - **kwargs # type: Any - ): - # type: (...) -> Iterable["models.DatadogMonitorResourceListResponse"] - """List all monitors under the specified subscription. - - List all monitors under the specified subscription. - - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either DatadogMonitorResourceListResponse or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~microsoft_datadog_client.models.DatadogMonitorResourceListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogMonitorResourceListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize('DatadogMonitorResourceListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged( - get_next, extract_data - ) - list.metadata = {'url': '/subscriptions/{subscriptionId}/providers/Microsoft.Datadog/monitors'} # type: ignore - - def list_by_resource_group( - self, - resource_group_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> Iterable["models.DatadogMonitorResourceListResponse"] - """List all monitors under the specified resource group. - - List all monitors under the specified resource group. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either DatadogMonitorResourceListResponse or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~microsoft_datadog_client.models.DatadogMonitorResourceListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogMonitorResourceListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list_by_resource_group.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize('DatadogMonitorResourceListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged( - get_next, extract_data - ) - list_by_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors'} # type: ignore - - def get( - self, - resource_group_name, # type: str - monitor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "models.DatadogMonitorResource" - """Get the properties of a specific monitor resource. - - Get the properties of a specific monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: DatadogMonitorResource, or the result of cls(response) - :rtype: ~microsoft_datadog_client.models.DatadogMonitorResource - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogMonitorResource"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize('DatadogMonitorResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}'} # type: ignore - - def _create_initial( - self, - resource_group_name, # type: str - monitor_name, # type: str - body=None, # type: Optional["models.DatadogMonitorResource"] - **kwargs # type: Any - ): - # type: (...) -> "models.DatadogMonitorResource" - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogMonitorResource"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self._create_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_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] - if body is not None: - body_content = self._serialize.body(body, 'DatadogMonitorResource') - else: - body_content = None - body_content_kwargs['content'] = body_content - request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200, 201]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if response.status_code == 200: - deserialized = self._deserialize('DatadogMonitorResource', pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize('DatadogMonitorResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - _create_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}'} # type: ignore - - def begin_create( - self, - resource_group_name, # type: str - monitor_name, # type: str - body=None, # type: Optional["models.DatadogMonitorResource"] - **kwargs # type: Any - ): - # type: (...) -> LROPoller["models.DatadogMonitorResource"] - """Create a monitor resource. - - Create a monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :param body: - :type body: ~microsoft_datadog_client.models.DatadogMonitorResource - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: An instance of LROPoller that returns either DatadogMonitorResource or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~microsoft_datadog_client.models.DatadogMonitorResource] - :raises ~azure.core.exceptions.HttpResponseError: - """ - polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogMonitorResource"] - lro_delay = kwargs.pop( - 'polling_interval', - self._config.polling_interval - ) - cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] - if cont_token is None: - raw_result = self._create_initial( - resource_group_name=resource_group_name, - monitor_name=monitor_name, - body=body, - cls=lambda x,y,z: x, - **kwargs - ) - - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize('DatadogMonitorResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - - if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = NoPolling() - else: polling_method = polling - if cont_token: - return LROPoller.from_continuation_token( - polling_method=polling_method, - continuation_token=cont_token, - client=self._client, - deserialization_callback=get_long_running_output - ) - else: - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_create.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}'} # type: ignore - - def _update_initial( - self, - resource_group_name, # type: str - monitor_name, # type: str - body=None, # type: Optional["models.DatadogMonitorResourceUpdateParameters"] - **kwargs # type: Any - ): - # type: (...) -> "models.DatadogMonitorResource" - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogMonitorResource"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self._update_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_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] - if body is not None: - body_content = self._serialize.body(body, 'DatadogMonitorResourceUpdateParameters') - else: - body_content = None - body_content_kwargs['content'] = body_content - request = self._client.patch(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200, 201]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if response.status_code == 200: - deserialized = self._deserialize('DatadogMonitorResource', pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize('DatadogMonitorResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - _update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}'} # type: ignore - - def begin_update( - self, - resource_group_name, # type: str - monitor_name, # type: str - body=None, # type: Optional["models.DatadogMonitorResourceUpdateParameters"] - **kwargs # type: Any - ): - # type: (...) -> LROPoller["models.DatadogMonitorResource"] - """Update a monitor resource. - - Update a monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :param body: - :type body: ~microsoft_datadog_client.models.DatadogMonitorResourceUpdateParameters - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: An instance of LROPoller that returns either DatadogMonitorResource or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~microsoft_datadog_client.models.DatadogMonitorResource] - :raises ~azure.core.exceptions.HttpResponseError: - """ - polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogMonitorResource"] - lro_delay = kwargs.pop( - 'polling_interval', - self._config.polling_interval - ) - cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] - if cont_token is None: - raw_result = self._update_initial( - resource_group_name=resource_group_name, - monitor_name=monitor_name, - body=body, - cls=lambda x,y,z: x, - **kwargs - ) - - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize('DatadogMonitorResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - - if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = NoPolling() - else: polling_method = polling - if cont_token: - return LROPoller.from_continuation_token( - polling_method=polling_method, - continuation_token=cont_token, - client=self._client, - deserialization_callback=get_long_running_output - ) - else: - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}'} # type: ignore - - def _delete_initial( - self, - resource_group_name, # type: str - monitor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> None - cls = kwargs.pop('cls', None) # type: ClsType[None] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - # Construct URL - url = self._delete_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - request = self._client.delete(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200, 202, 204]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if cls: - return cls(pipeline_response, None, {}) - - _delete_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}'} # type: ignore - - def begin_delete( - self, - resource_group_name, # type: str - monitor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> LROPoller[None] - """Delete a monitor resource. - - Delete a monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: An instance of LROPoller that returns either None or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[None] - :raises ~azure.core.exceptions.HttpResponseError: - """ - polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType[None] - lro_delay = kwargs.pop( - 'polling_interval', - self._config.polling_interval - ) - cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] - if cont_token is None: - raw_result = self._delete_initial( - resource_group_name=resource_group_name, - monitor_name=monitor_name, - cls=lambda x,y,z: x, - **kwargs - ) - - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) - - def get_long_running_output(pipeline_response): - if cls: - return cls(pipeline_response, None, {}) - - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - - if polling is True: polling_method = ARMPolling(lro_delay, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = NoPolling() - else: polling_method = polling - if cont_token: - return LROPoller.from_continuation_token( - polling_method=polling_method, - continuation_token=cont_token, - client=self._client, - deserialization_callback=get_long_running_output - ) - else: - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_delete.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}'} # type: ignore - - def refresh_set_password_link( - self, - resource_group_name, # type: str - monitor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "models.DatadogSetPasswordLink" - """Refresh the set password link and return a latest one. - - Refresh the set password link and return a latest one. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: DatadogSetPasswordLink, or the result of cls(response) - :rtype: ~microsoft_datadog_client.models.DatadogSetPasswordLink - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogSetPasswordLink"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - # Construct URL - url = self.refresh_set_password_link.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - request = self._client.post(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize('DatadogSetPasswordLink', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - refresh_set_password_link.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/refreshSetPasswordLink'} # type: ignore diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/operations/_operations.py b/src/datadog/azext_datadog/vendored_sdks/datadog/operations/_operations.py deleted file mode 100644 index 8cc38ea3a6b..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/operations/_operations.py +++ /dev/null @@ -1,112 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- -from typing import TYPE_CHECKING -import warnings - -from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error -from azure.core.paging import ItemPaged -from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse -from azure.mgmt.core.exceptions import ARMErrorFormat - -from .. import models - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class Operations(object): - """Operations 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: ~microsoft_datadog_client.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. - """ - - models = models - - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config - - def list( - self, - **kwargs # type: Any - ): - # type: (...) -> Iterable["models.OperationListResult"] - """List all operations provided by Microsoft.Datadog for the 2021-03-01 api version. - - List all operations provided by Microsoft.Datadog for the 2021-03-01 api version. - - :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[~microsoft_datadog_client.models.OperationListResult] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.OperationListResult"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize('OperationListResult', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged( - get_next, extract_data - ) - list.metadata = {'url': '/providers/Microsoft.Datadog/operations'} # type: ignore diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/operations/_single_sign_on_configurations_operations.py b/src/datadog/azext_datadog/vendored_sdks/datadog/operations/_single_sign_on_configurations_operations.py deleted file mode 100644 index 6f2e25ce942..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/operations/_single_sign_on_configurations_operations.py +++ /dev/null @@ -1,335 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- -from typing import TYPE_CHECKING -import warnings - -from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error -from azure.core.paging import ItemPaged -from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse -from azure.core.polling import LROPoller, NoPolling, PollingMethod -from azure.mgmt.core.exceptions import ARMErrorFormat -from azure.mgmt.core.polling.arm_polling import ARMPolling - -from .. import models - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar, Union - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class SingleSignOnConfigurationsOperations(object): - """SingleSignOnConfigurationsOperations 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: ~microsoft_datadog_client.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. - """ - - models = models - - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config - - def list( - self, - resource_group_name, # type: str - monitor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> Iterable["models.DatadogSingleSignOnResourceListResponse"] - """List the single sign-on configurations for a given monitor resource. - - List the single sign-on configurations for a given monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either DatadogSingleSignOnResourceListResponse or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~microsoft_datadog_client.models.DatadogSingleSignOnResourceListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogSingleSignOnResourceListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize('DatadogSingleSignOnResourceListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged( - get_next, extract_data - ) - list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/singleSignOnConfigurations'} # type: ignore - - def _create_or_update_initial( - self, - resource_group_name, # type: str - monitor_name, # type: str - configuration_name, # type: str - body=None, # type: Optional["models.DatadogSingleSignOnResource"] - **kwargs # type: Any - ): - # type: (...) -> "models.DatadogSingleSignOnResource" - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogSingleSignOnResource"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self._create_or_update_initial.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - 'configurationName': self._serialize.url("configuration_name", configuration_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] - if body is not None: - body_content = self._serialize.body(body, 'DatadogSingleSignOnResource') - else: - body_content = None - body_content_kwargs['content'] = body_content - request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200, 201]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - if response.status_code == 200: - deserialized = self._deserialize('DatadogSingleSignOnResource', pipeline_response) - - if response.status_code == 201: - deserialized = self._deserialize('DatadogSingleSignOnResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - _create_or_update_initial.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/singleSignOnConfigurations/{configurationName}'} # type: ignore - - def begin_create_or_update( - self, - resource_group_name, # type: str - monitor_name, # type: str - configuration_name, # type: str - body=None, # type: Optional["models.DatadogSingleSignOnResource"] - **kwargs # type: Any - ): - # type: (...) -> LROPoller["models.DatadogSingleSignOnResource"] - """Configures single-sign-on for this resource. - - Configures single-sign-on for this resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :param configuration_name: Configuration name. - :type configuration_name: str - :param body: - :type body: ~microsoft_datadog_client.models.DatadogSingleSignOnResource - :keyword callable cls: A custom type or function that will be passed the direct response - :keyword str continuation_token: A continuation token to restart a poller from a saved state. - :keyword polling: True for ARMPolling, False for no polling, or a - polling object for personal polling strategy - :paramtype polling: bool or ~azure.core.polling.PollingMethod - :keyword int polling_interval: Default waiting time between two polls for LRO operations if no Retry-After header is present. - :return: An instance of LROPoller that returns either DatadogSingleSignOnResource or the result of cls(response) - :rtype: ~azure.core.polling.LROPoller[~microsoft_datadog_client.models.DatadogSingleSignOnResource] - :raises ~azure.core.exceptions.HttpResponseError: - """ - polling = kwargs.pop('polling', True) # type: Union[bool, PollingMethod] - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogSingleSignOnResource"] - lro_delay = kwargs.pop( - 'polling_interval', - self._config.polling_interval - ) - cont_token = kwargs.pop('continuation_token', None) # type: Optional[str] - if cont_token is None: - raw_result = self._create_or_update_initial( - resource_group_name=resource_group_name, - monitor_name=monitor_name, - configuration_name=configuration_name, - body=body, - cls=lambda x,y,z: x, - **kwargs - ) - - kwargs.pop('error_map', None) - kwargs.pop('content_type', None) - - def get_long_running_output(pipeline_response): - deserialized = self._deserialize('DatadogSingleSignOnResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - return deserialized - - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - 'configurationName': self._serialize.url("configuration_name", configuration_name, 'str'), - } - - if polling is True: polling_method = ARMPolling(lro_delay, lro_options={'final-state-via': 'azure-async-operation'}, path_format_arguments=path_format_arguments, **kwargs) - elif polling is False: polling_method = NoPolling() - else: polling_method = polling - if cont_token: - return LROPoller.from_continuation_token( - polling_method=polling_method, - continuation_token=cont_token, - client=self._client, - deserialization_callback=get_long_running_output - ) - else: - return LROPoller(self._client, raw_result, get_long_running_output, polling_method) - begin_create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/singleSignOnConfigurations/{configurationName}'} # type: ignore - - def get( - self, - resource_group_name, # type: str - monitor_name, # type: str - configuration_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "models.DatadogSingleSignOnResource" - """Gets the datadog single sign-on resource for the given Monitor. - - Gets the datadog single sign-on resource for the given Monitor. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :param configuration_name: Configuration name. - :type configuration_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: DatadogSingleSignOnResource, or the result of cls(response) - :rtype: ~microsoft_datadog_client.models.DatadogSingleSignOnResource - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.DatadogSingleSignOnResource"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - 'configurationName': self._serialize.url("configuration_name", configuration_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize('DatadogSingleSignOnResource', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/singleSignOnConfigurations/{configurationName}'} # type: ignore diff --git a/src/datadog/azext_datadog/vendored_sdks/datadog/operations/_tag_rules_operations.py b/src/datadog/azext_datadog/vendored_sdks/datadog/operations/_tag_rules_operations.py deleted file mode 100644 index a9fb453770f..00000000000 --- a/src/datadog/azext_datadog/vendored_sdks/datadog/operations/_tag_rules_operations.py +++ /dev/null @@ -1,267 +0,0 @@ -# coding=utf-8 -# -------------------------------------------------------------------------- -# Copyright (c) Microsoft Corporation. All rights reserved. -# Licensed under the MIT License. See License.txt in the project root for license information. -# Code generated by Microsoft (R) AutoRest Code Generator. -# Changes may cause incorrect behavior and will be lost if the code is regenerated. -# -------------------------------------------------------------------------- -from typing import TYPE_CHECKING -import warnings - -from azure.core.exceptions import ClientAuthenticationError, HttpResponseError, ResourceExistsError, ResourceNotFoundError, map_error -from azure.core.paging import ItemPaged -from azure.core.pipeline import PipelineResponse -from azure.core.pipeline.transport import HttpRequest, HttpResponse -from azure.mgmt.core.exceptions import ARMErrorFormat - -from .. import models - -if TYPE_CHECKING: - # pylint: disable=unused-import,ungrouped-imports - from typing import Any, Callable, Dict, Generic, Iterable, Optional, TypeVar - - T = TypeVar('T') - ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]] - -class TagRulesOperations(object): - """TagRulesOperations 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: ~microsoft_datadog_client.models - :param client: Client for service requests. - :param config: Configuration of service client. - :param serializer: An object model serializer. - :param deserializer: An object model deserializer. - """ - - models = models - - def __init__(self, client, config, serializer, deserializer): - self._client = client - self._serialize = serializer - self._deserialize = deserializer - self._config = config - - def list( - self, - resource_group_name, # type: str - monitor_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> Iterable["models.MonitoringTagRulesListResponse"] - """List the tag rules for a given monitor resource. - - List the tag rules for a given monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: An iterator like instance of either MonitoringTagRulesListResponse or the result of cls(response) - :rtype: ~azure.core.paging.ItemPaged[~microsoft_datadog_client.models.MonitoringTagRulesListResponse] - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.MonitoringTagRulesListResponse"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - def prepare_request(next_link=None): - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - if not next_link: - # Construct URL - url = self.list.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - else: - url = next_link - query_parameters = {} # type: Dict[str, Any] - request = self._client.get(url, query_parameters, header_parameters) - return request - - def extract_data(pipeline_response): - deserialized = self._deserialize('MonitoringTagRulesListResponse', pipeline_response) - list_of_elem = deserialized.value - if cls: - list_of_elem = cls(list_of_elem) - return deserialized.next_link or None, iter(list_of_elem) - - def get_next(next_link=None): - request = prepare_request(next_link) - - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - error = self._deserialize(models.ErrorResponse, response) - map_error(status_code=response.status_code, response=response, error_map=error_map) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - return pipeline_response - - return ItemPaged( - get_next, extract_data - ) - list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/tagRules'} # type: ignore - - def create_or_update( - self, - resource_group_name, # type: str - monitor_name, # type: str - rule_set_name, # type: str - body=None, # type: Optional["models.MonitoringTagRules"] - **kwargs # type: Any - ): - # type: (...) -> "models.MonitoringTagRules" - """Create or update a tag rule set for a given monitor resource. - - Create or update a tag rule set for a given monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :param rule_set_name: Rule set name. - :type rule_set_name: str - :param body: - :type body: ~microsoft_datadog_client.models.MonitoringTagRules - :keyword callable cls: A custom type or function that will be passed the direct response - :return: MonitoringTagRules, or the result of cls(response) - :rtype: ~microsoft_datadog_client.models.MonitoringTagRules - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.MonitoringTagRules"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - content_type = kwargs.pop("content_type", "application/json") - accept = "application/json" - - # Construct URL - url = self.create_or_update.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - 'ruleSetName': self._serialize.url("rule_set_name", rule_set_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] - if body is not None: - body_content = self._serialize.body(body, 'MonitoringTagRules') - else: - body_content = None - body_content_kwargs['content'] = body_content - request = self._client.put(url, query_parameters, header_parameters, **body_content_kwargs) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize('MonitoringTagRules', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - create_or_update.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/tagRules/{ruleSetName}'} # type: ignore - - def get( - self, - resource_group_name, # type: str - monitor_name, # type: str - rule_set_name, # type: str - **kwargs # type: Any - ): - # type: (...) -> "models.MonitoringTagRules" - """Get a tag rule set for a given monitor resource. - - Get a tag rule set for a given monitor resource. - - :param resource_group_name: The name of the resource group. The name is case insensitive. - :type resource_group_name: str - :param monitor_name: Monitor resource name. - :type monitor_name: str - :param rule_set_name: Rule set name. - :type rule_set_name: str - :keyword callable cls: A custom type or function that will be passed the direct response - :return: MonitoringTagRules, or the result of cls(response) - :rtype: ~microsoft_datadog_client.models.MonitoringTagRules - :raises: ~azure.core.exceptions.HttpResponseError - """ - cls = kwargs.pop('cls', None) # type: ClsType["models.MonitoringTagRules"] - error_map = { - 401: ClientAuthenticationError, 404: ResourceNotFoundError, 409: ResourceExistsError - } - error_map.update(kwargs.pop('error_map', {})) - api_version = "2021-03-01" - accept = "application/json" - - # Construct URL - url = self.get.metadata['url'] # type: ignore - path_format_arguments = { - 'subscriptionId': self._serialize.url("self._config.subscription_id", self._config.subscription_id, 'str', min_length=1), - 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str', max_length=90, min_length=1, pattern=r'^[-\w\._\(\)]+$'), - 'monitorName': self._serialize.url("monitor_name", monitor_name, 'str'), - 'ruleSetName': self._serialize.url("rule_set_name", rule_set_name, 'str'), - } - url = self._client.format_url(url, **path_format_arguments) - - # Construct parameters - query_parameters = {} # type: Dict[str, Any] - query_parameters['api-version'] = self._serialize.query("api_version", api_version, 'str') - - # Construct headers - header_parameters = {} # type: Dict[str, Any] - header_parameters['Accept'] = self._serialize.header("accept", accept, 'str') - - request = self._client.get(url, query_parameters, header_parameters) - pipeline_response = self._client._pipeline.run(request, stream=False, **kwargs) - response = pipeline_response.http_response - - if response.status_code not in [200]: - map_error(status_code=response.status_code, response=response, error_map=error_map) - error = self._deserialize(models.ErrorResponse, response) - raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat) - - deserialized = self._deserialize('MonitoringTagRules', pipeline_response) - - if cls: - return cls(pipeline_response, deserialized, {}) - - return deserialized - get.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Datadog/monitors/{monitorName}/tagRules/{ruleSetName}'} # type: ignore diff --git a/src/datadog/setup.cfg b/src/datadog/setup.cfg index 8bfd5a12f85..2fdd96e5d39 100644 --- a/src/datadog/setup.cfg +++ b/src/datadog/setup.cfg @@ -1,4 +1 @@ -[egg_info] -tag_build = -tag_date = 0 - +#setup.cfg \ No newline at end of file diff --git a/src/datadog/setup.py b/src/datadog/setup.py index 7c458a26e75..5b5ff5b82dd 100644 --- a/src/datadog/setup.py +++ b/src/datadog/setup.py @@ -1,16 +1,16 @@ -#!/usr/bin/env python - # -------------------------------------------------------------------------------------------- # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See License.txt in the project root for license information. +# +# Code generated by aaz-dev-tools # -------------------------------------------------------------------------------------------- - from codecs import open from setuptools import setup, find_packages + # HISTORY.rst entry. -VERSION = '0.1.1' +VERSION = '1.0.0' # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers @@ -20,19 +20,14 @@ 'Intended Audience :: System Administrators', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', 'License :: OSI Approved :: MIT License', ] DEPENDENCIES = [] -try: - from azext_datadog.manual.dependency import DEPENDENCIES -except ImportError: - pass - with open('README.md', 'r', encoding='utf-8') as f: README = f.read() with open('HISTORY.rst', 'r', encoding='utf-8') as f: @@ -41,14 +36,14 @@ setup( name='datadog', version=VERSION, - description='Microsoft Azure Command-Line Tools MicrosoftDatadogClient Extension', + description='Microsoft Azure Command-Line Tools Datadog Extension.', + long_description=README + '\n\n' + HISTORY, + license='MIT', author='Microsoft Corporation', author_email='azpycli@microsoft.com', url='https://github.com/Azure/azure-cli-extensions/tree/main/src/datadog', - long_description=README + '\n\n' + HISTORY, - license='MIT', classifiers=CLASSIFIERS, - packages=find_packages(), - install_requires=DEPENDENCIES, + packages=find_packages(exclude=["tests"]), package_data={'azext_datadog': ['azext_metadata.json']}, + install_requires=DEPENDENCIES )