[Monitor] Metric Alerts commands (#7037)

* Metric Alerts commands

* Code review feedback.
This commit is contained in:
Travis Prescott 2018-08-16 18:28:53 -07:00 коммит произвёл GitHub
Родитель 6deace240a
Коммит 0a5587d951
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
34 изменённых файлов: 3098 добавлений и 673 удалений

Просмотреть файл

@ -14,4 +14,4 @@ exclude =
scripts
doc
build_scripts
*/grammar/

Просмотреть файл

@ -26,6 +26,7 @@
<Compile Include="azure-cli-command_modules-nspkg\azure\cli\command_modules\__init__.py" />
<Compile Include="azure-cli-command_modules-nspkg\setup.py" />
<Compile Include="azure-cli-core\azure\cli\core\adal_authentication.py" />
<Compile Include="azure-cli-core\azure\cli\core\api.py" />
<Compile Include="azure-cli-core\azure\cli\core\azlogging.py" />
<Compile Include="azure-cli-core\azure\cli\core\cloud.py" />
<Compile Include="azure-cli-core\azure\cli\core\commands\arm.py" />
@ -46,6 +47,7 @@
<Compile Include="azure-cli-core\azure\cli\core\extensions\__init__.py" />
<Compile Include="azure-cli-core\azure\cli\core\file_util.py" />
<Compile Include="azure-cli-core\azure\cli\core\keys.py" />
<Compile Include="azure-cli-core\azure\cli\core\mock.py" />
<Compile Include="azure-cli-core\azure\cli\core\parser.py" />
<Compile Include="azure-cli-core\azure\cli\core\profiles\_shared.py" />
<Compile Include="azure-cli-core\azure\cli\core\profiles\__init__.py" />
@ -69,6 +71,7 @@
<Compile Include="azure-cli-core\azure\cli\core\tests\test_util.py" />
<Compile Include="azure-cli-core\azure\cli\core\tests\test_core_validators.py" />
<Compile Include="azure-cli-core\azure\cli\core\util.py" />
<Compile Include="azure-cli-core\azure\cli\core\_completers.py" />
<Compile Include="azure-cli-core\azure\cli\core\_config.py" />
<Compile Include="azure-cli-core\azure\cli\core\_debug.py" />
<Compile Include="azure-cli-core\azure\cli\core\_environment.py" />
@ -405,6 +408,14 @@
<Compile Include="command_modules\azure-cli-interactive\azure\cli\command_modules\interactive\__init__.py" />
<Compile Include="command_modules\azure-cli-interactive\azure_bdist_wheel.py" />
<Compile Include="command_modules\azure-cli-interactive\setup.py" />
<Compile Include="command_modules\azure-cli-iotcentral\azure\cli\command_modules\iotcentral\commands.py" />
<Compile Include="command_modules\azure-cli-iotcentral\azure\cli\command_modules\iotcentral\custom.py" />
<Compile Include="command_modules\azure-cli-iotcentral\azure\cli\command_modules\iotcentral\tests\latest\test_iotcentral_commands.py" />
<Compile Include="command_modules\azure-cli-iotcentral\azure\cli\command_modules\iotcentral\_client_factory.py" />
<Compile Include="command_modules\azure-cli-iotcentral\azure\cli\command_modules\iotcentral\_help.py" />
<Compile Include="command_modules\azure-cli-iotcentral\azure\cli\command_modules\iotcentral\_params.py" />
<Compile Include="command_modules\azure-cli-iotcentral\azure\cli\command_modules\iotcentral\__init__.py" />
<Compile Include="command_modules\azure-cli-iotcentral\setup.py" />
<Compile Include="command_modules\azure-cli-iot\azure\cli\command_modules\iot\custom.py" />
<Compile Include="command_modules\azure-cli-iot\azure\cli\command_modules\iot\commands.py" />
<Compile Include="command_modules\azure-cli-iot\azure\cli\command_modules\iot\mgmt_iot_hub_device\lib\credentials.py" />
@ -480,6 +491,11 @@
<Compile Include="command_modules\azure-cli-maps\__init__.py" />
<Compile Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\commands.py" />
<Compile Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\actions.py" />
<Compile Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\grammar\MetricAlertConditionLexer.py" />
<Compile Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\grammar\MetricAlertConditionListener.py" />
<Compile Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\grammar\MetricAlertConditionParser.py" />
<Compile Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\grammar\MetricAlertConditionValidator.py" />
<Compile Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\grammar\__init__.py" />
<Compile Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\operations\action_groups.py" />
<Compile Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\operations\activity_log.py" />
<Compile Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\operations\activity_log_alerts.py" />
@ -507,7 +523,6 @@
<Compile Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\_help.py" />
<Compile Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\_params.py" />
<Compile Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\__init__.py" />
<Compile Include="command_modules\azure-cli-monitor\azure_bdist_wheel.py" />
<Compile Include="command_modules\azure-cli-monitor\setup.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\tests\latest\test_dns_commands.py" />
<Compile Include="command_modules\azure-cli-network\azure\cli\command_modules\network\tests\latest\test_network_commands.py" />
@ -936,6 +951,13 @@
<Folder Include="command_modules\azure-cli-interactive\azure\cli\command_modules\interactive\tests\" />
<Folder Include="command_modules\azure-cli-interactive\azure\cli\command_modules\interactive\tests\latest\" />
<Folder Include="command_modules\azure-cli-interactive\docs\" />
<Folder Include="command_modules\azure-cli-iotcentral\" />
<Folder Include="command_modules\azure-cli-iotcentral\azure\" />
<Folder Include="command_modules\azure-cli-iotcentral\azure\cli\" />
<Folder Include="command_modules\azure-cli-iotcentral\azure\cli\command_modules\" />
<Folder Include="command_modules\azure-cli-iotcentral\azure\cli\command_modules\iotcentral\" />
<Folder Include="command_modules\azure-cli-iotcentral\azure\cli\command_modules\iotcentral\tests\" />
<Folder Include="command_modules\azure-cli-iotcentral\azure\cli\command_modules\iotcentral\tests\latest\" />
<Folder Include="command_modules\azure-cli-iot\" />
<Folder Include="command_modules\azure-cli-iot\azure\" />
<Folder Include="command_modules\azure-cli-iot\azure\cli\" />
@ -984,6 +1006,7 @@
<Folder Include="command_modules\azure-cli-monitor\azure\cli\" />
<Folder Include="command_modules\azure-cli-monitor\azure\cli\command_modules\" />
<Folder Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\" />
<Folder Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\grammar\" />
<Folder Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\operations\" />
<Folder Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\tests\" />
<Folder Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\tests\latest\" />
@ -1228,6 +1251,7 @@
<Content Include="command_modules\azure-cli-interactive\README.md" />
<Content Include="command_modules\azure-cli-interactive\README.rst" />
<Content Include="command_modules\azure-cli-interactive\setup.cfg" />
<Content Include="command_modules\azure-cli-iotcentral\HISTORY.rst" />
<Content Include="command_modules\azure-cli-iot\azure\cli\command_modules\iot\mgmt_iot_hub_device\swagger_iot_hub_device_identity.json" />
<Content Include="command_modules\azure-cli-iot\HISTORY.rst" />
<Content Include="command_modules\azure-cli-keyvault\azure\cli\command_modules\keyvault\tests\latest\policy.json" />
@ -1244,15 +1268,15 @@
<Content Include="command_modules\azure-cli-lab\README.rst" />
<Content Include="command_modules\azure-cli-lab\setup.cfg" />
<Content Include="command_modules\azure-cli-maps\HISTORY.rst" />
<Content Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\grammar\MetricAlertCondition.g4" />
<Content Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\grammar\build_python.bat" />
<Content Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\grammar\run_test.bat" />
<Content Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\operations\autoscale-parameters-template.json" />
<Content Include="command_modules\azure-cli-monitor\azure\cli\command_modules\monitor\_autoscale_util.py">
<SubType>Code</SubType>
</Content>
<Content Include="command_modules\azure-cli-monitor\HISTORY.rst" />
<Content Include="command_modules\azure-cli-monitor\linter_exclusions.yml" />
<Content Include="command_modules\azure-cli-monitor\MANIFEST.in" />
<Content Include="command_modules\azure-cli-monitor\README.rst" />
<Content Include="command_modules\azure-cli-monitor\setup.cfg" />
<Content Include="command_modules\azure-cli-network\azure\cli\command_modules\network\tests\latest\zone_files\fail1.txt" />
<Content Include="command_modules\azure-cli-network\azure\cli\command_modules\network\tests\latest\zone_files\fail2.txt" />
<Content Include="command_modules\azure-cli-network\azure\cli\command_modules\network\tests\latest\zone_files\fail3.txt" />

Просмотреть файл

@ -83,6 +83,11 @@ if sys.version_info < (2, 7, 9):
DEPENDENCIES.append('ndg-httpsclient')
DEPENDENCIES.append('pyasn1')
if sys.version_info < (3, 0):
DEPENDENCIES.append('antlr4-python2-runtime')
else:
DEPENDENCIES.append('antlr4-python3-runtime')
with open('README.rst', 'r', encoding='utf-8') as f:
README = f.read()
with open('HISTORY.rst', 'r', encoding='utf-8') as f:

Просмотреть файл

@ -5,7 +5,8 @@ Release History
0.2.3
+++++
* Minor fixes
* Added `monitor metrics alert` commands for near-realtime metric alerts.
* Deprecated `monitor alert` commands.
0.2.2
+++++

Просмотреть файл

@ -53,3 +53,7 @@ def cf_activity_log(cli_ctx, _):
def cf_event_categories(cli_ctx, _):
return cf_monitor(cli_ctx, _).event_categories
def cf_metric_alerts(cli_ctx, _):
return cf_monitor(cli_ctx, _).metric_alerts

Просмотреть файл

@ -12,6 +12,8 @@ def monitor_exception_handler(ex):
# work around for issue: https://github.com/Azure/azure-sdk-for-python/issues/1556
error_payload = ex.response.json()
error_payload = {k.lower(): v for k, v in error_payload.items()}
if 'error' in error_payload:
error_payload = error_payload['error']
if 'code' in error_payload and 'message' in error_payload:
message = '{}.'.format(error_payload['message']) if error_payload['message'] else 'Operation failed.'
code = '[Code: "{}"]'.format(error_payload['code']) if error_payload['code'] else ''

Просмотреть файл

@ -194,7 +194,95 @@ helps['monitor metrics list-definitions'] = """
short-summary: Lists the metric definitions for the resource.
"""
# endregion
helps['monitor metrics alert'] = """
type: group
short-summary: Manage near-realtime metric alert rules.
"""
helps['monitor metrics alert create'] = """
type: command
short-summary: Create an alert rule.
parameters:
- name: --action -a
short-summary: Add an action group and optional webhook properties to fire when the alert is triggered.
long-summary: |
Usage: --action ACTION_GROUP_NAME_OR_ID [KEY=VAL [KEY=VAL ...]]
Multiple action groups can be specified by using more than one `--action` argument.
- name: --disabled
short-summary: Create the rule in a disabled state.
- name: --condition
short-summary: The condition which triggers the rule.
long-summary: |
Usage: --conditon {avg,min,max,total} [NAMESPACE.]METRIC {=,!=,>,>=,<,<=} THRESHOLD
[where DIMENSION {includes,excludes} VALUE [or VALUE ...]
[and DIMENSION {includes,excludes} VALUE [or VALUE ...] ...]]
Dimensions can be queried by adding the 'where' keyword and multiple dimensions can be queried by combining them with the 'and' keyword.
Values for METRIC, DIMENSION and appropriate THRESHOLD values can be obtained from `az monitor metrics list-definition` command.
Multiple conditons can be specified by using more than one `--condition` argument.
examples:
- name: Create a high CPU usage alert on a VM with no actions.
text: >
az monitor metrics alert create -n alert1 -g {ResourceGroup} --scopes {VirtualMachineID} --condition "avg Percentage CPU > 90"
- name: Create a high CPU usage alert on a VM with email and webhook actions.
text: |
az monitor metrics alert create -n alert1 -g {ResourceGroup} --scopes {VirtualMachineID} \\
--condition "avg Percentage CPU > 90" --window-size 5m --evaluation-frequency 1m \\
--action {actionGroupId} apiKey={APIKey} type=HighCPU
- name: Create an alert when a storage account shows a high number of slow transactions, using multi-dimensional filters.
text: |
az monitor metrics alert create -g {ResourceGroup} -n alert1 --scopes {StorageAccountId} \\
--description "Storage Slow Transactions" \\
--condition "total transactions > 5 where ResponseType includes Success" \\
--condition "avg SuccessE2ELatency > 250 where ApiName includes GetBlob or PutBlob"
"""
helps['monitor metrics alert update'] = """
type: command
short-summary: Update an alert rule.
parameters:
- name: --add-condition
short-summary: Add a condition which triggers the rule.
long-summary: |
Usage: --add-conditon {avg,min,max,total} [NAMESPACE.]METRIC {=,!=,>,>=,<,<=} THRESHOLD
[where DIMENSION {includes,excludes} VALUE [or VALUE ...]
[and DIMENSION {includes,excludes} VALUE [or VALUE ...] ...]]
Dimensions can be queried by adding the 'where' keyword and multiple dimensions can be queried by combining them with the 'and' keyword.
Values for METRIC, DIMENSION and appropriate THRESHOLD values can be obtained from `az monitor metrics list-definition` command.
Multiple conditons can be specified by using more than one `--condition` argument.
- name: --remove-conditions
short-summary: Space-separated list of condition names to remove.
- name: --add-action
short-summary: Add an action group and optional webhook properties to fire when the alert is triggered.
long-summary: |
Usage: --add-action ACTION_GROUP_NAME_OR_ID [KEY=VAL [KEY=VAL ...]]
Multiple action groups can be specified by using more than one `--action` argument.
- name: --remove-actions
short-summary: Space-separated list of action group names to remove.
"""
helps['monitor metrics alert delete'] = """
type: command
short-summary: Delete an alert rule.
"""
helps['monitor metrics alert list'] = """
type: command
short-summary: List alert rules.
"""
helps['monitor metrics alert show'] = """
type: command
short-summary: Show an alert rule.
"""
helps['monitor log-profiles'] = """
type: group

Просмотреть файл

@ -14,10 +14,11 @@ from azure.cli.core.commands.validators import get_default_location_from_resourc
from azure.cli.command_modules.monitor.actions import (
AlertAddAction, AlertRemoveAction, ConditionAction, AutoscaleAddAction, AutoscaleRemoveAction,
AutoscaleScaleAction, AutoscaleConditionAction, period_type,
timezone_offset_type, timezone_name_type)
timezone_offset_type, timezone_name_type, MetricAlertConditionAction, MetricAlertAddAction)
from azure.cli.command_modules.monitor.util import get_operator_map, get_aggregation_map
from azure.cli.command_modules.monitor.validators import (
process_webhook_prop, validate_autoscale_recurrence, validate_autoscale_timegrain)
process_webhook_prop, validate_autoscale_recurrence, validate_autoscale_timegrain, get_action_group_validator,
get_action_group_id_validator)
# pylint: disable=line-too-long, too-many-statements
@ -105,6 +106,31 @@ def load_arguments(self, _):
c.ignore('timespan', 'result_type')
# endregion
# region MetricAlerts
with self.argument_context('monitor metrics alert') as c:
c.argument('rule_name', name_arg_type, id_part='name', help='Name of the alert rule.')
c.argument('severity', type=int, help='Severity of the alert from 0 (low) to 4 (high).')
c.argument('window_size', type=period_type, help='Time over which to aggregate metrics in "##h##m##s" format.')
c.argument('evaluation_frequency', type=period_type, help='Frequency with which to evaluate the rule in "##h##m##s" format.')
c.argument('auto_mitigate', arg_type=get_three_state_flag(), help='Automatically resolve the alert.')
c.argument('condition', options_list=['--condition'], action=MetricAlertConditionAction, nargs='+')
c.argument('description', help='Free-text description of the rule.')
c.argument('scopes', nargs='+', help='Space-separated list of scopes the rule applies to.')
c.argument('disabled', arg_type=get_three_state_flag())
c.argument('enabled', arg_type=get_three_state_flag(), help='Whether the metric alert rule is enabled.')
with self.argument_context('monitor metrics alert create', arg_group=None) as c:
c.argument('actions', options_list=['--action', '-a'], action=MetricAlertAddAction, nargs='+', validator=get_action_group_validator('actions'))
with self.argument_context('monitor metrics alert update', arg_group='Action') as c:
c.argument('add_actions', options_list='--add-action', action=MetricAlertAddAction, nargs='+', validator=get_action_group_validator('add_actions'))
c.argument('remove_actions', nargs='+', validator=get_action_group_id_validator('remove_actions'))
with self.argument_context('monitor metrics alert update', arg_group='Condition') as c:
c.argument('add_conditions', options_list='--add-condition', action=MetricAlertConditionAction, nargs='+')
c.argument('remove_conditions', nargs='+')
# endregion
# region Autoscale
with self.argument_context('monitor autoscale') as c:
c.argument('autoscale_name', arg_type=autoscale_name_type, options_list=['--name', '-n'])

Просмотреть файл

@ -5,6 +5,8 @@
import argparse
import antlr4
from azure.cli.command_modules.monitor.util import (
get_aggregation_map, get_operator_map, get_autoscale_operator_map,
get_autoscale_aggregation_map, get_autoscale_scale_direction_map)
@ -74,6 +76,41 @@ def period_type(value):
return 'P{}T{}{}{}'.format(days, minutes, hours, seconds).upper()
# pylint: disable=protected-access, too-few-public-methods
class MetricAlertConditionAction(argparse._AppendAction):
def __call__(self, parser, namespace, values, option_string=None):
from azure.cli.command_modules.monitor.grammar import (
MetricAlertConditionLexer, MetricAlertConditionParser, MetricAlertConditionValidator)
string_val = ' '.join(values)
lexer = MetricAlertConditionLexer(antlr4.InputStream(string_val))
stream = antlr4.CommonTokenStream(lexer)
parser = MetricAlertConditionParser(stream)
tree = parser.expression()
validator = MetricAlertConditionValidator()
walker = antlr4.ParseTreeWalker()
walker.walk(validator, tree)
metric_condition = validator.result()
super(MetricAlertConditionAction, self).__call__(parser, namespace, metric_condition, option_string)
# pylint: disable=protected-access, too-few-public-methods
class MetricAlertAddAction(argparse._AppendAction):
def __call__(self, parser, namespace, values, option_string=None):
from azure.mgmt.monitor.models import MetricAlertAction
action = MetricAlertAction(
action_group_id=values[0],
webhook_properties=dict(x.split('=', 1) for x in values[1:]) if len(values) > 1 else None
)
action.odatatype = 'Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.' \
'DataContracts.Resources.ScheduledQueryRules.Action'
super(MetricAlertAddAction, self).__call__(parser, namespace, action, option_string)
# pylint: disable=too-few-public-methods
class ConditionAction(argparse.Action):
def __call__(self, parser, namespace, values, option_string=None):
@ -266,15 +303,26 @@ class MultiObjectsDeserializeAction(argparse._AppendAction): # pylint: disable=
class ActionGroupReceiverParameterAction(MultiObjectsDeserializeAction):
def deserialize_object(self, type_name, type_properties):
from azure.mgmt.monitor.models import EmailReceiver, SmsReceiver, WebhookReceiver
from knack.util import CLIError
if type_name == 'email':
return EmailReceiver(name=type_properties[0], email_address=type_properties[1])
try:
return EmailReceiver(name=type_properties[0], email_address=type_properties[1])
except IndexError:
raise CLIError('usage error: --action email NAME EMAIL_ADDRESS')
elif type_name == 'sms':
return SmsReceiver(
name=type_properties[0],
country_code=type_properties[1],
phone_number=type_properties[2]
)
try:
return SmsReceiver(
name=type_properties[0],
country_code=type_properties[1],
phone_number=type_properties[2]
)
except IndexError:
raise CLIError('usage error: --action sms NAME COUNTRY_CODE PHONE_NUMBER')
elif type_name == 'webhook':
return WebhookReceiver(name=type_properties[0], service_uri=type_properties[1])
try:
return WebhookReceiver(name=type_properties[0], service_uri=type_properties[1])
except IndexError:
raise CLIError('usage error: --action webhook NAME URI')
else:
raise ValueError('usage error: the type "{}" is not recognizable.'.format(type_name))

Просмотреть файл

@ -11,7 +11,8 @@ def load_command_table(self, _):
from ._client_factory import (
cf_alert_rules, cf_metrics, cf_metric_def, cf_alert_rule_incidents, cf_log_profiles, cf_autoscale,
cf_diagnostics, cf_activity_log, cf_action_groups, cf_activity_log_alerts, cf_event_categories)
cf_diagnostics, cf_activity_log, cf_action_groups, cf_activity_log_alerts, cf_event_categories,
cf_metric_alerts)
from ._exception_handler import monitor_exception_handler, missing_resource_handler
from .transformers import (action_group_list_table)
from .validators import process_autoscale_create_namespace
@ -96,6 +97,11 @@ def load_command_table(self, _):
client_factory=cf_alert_rules,
exception_handler=monitor_exception_handler)
metric_alert_sdk = CliCommandType(
operations_tmpl='azure.mgmt.monitor.operations.metric_alerts_operations#MetricAlertsOperations.{}',
client_factory=cf_metric_alerts,
exception_handler=monitor_exception_handler)
metric_definitions_sdk = CliCommandType(
operations_tmpl='azure.mgmt.monitor.operations.metric_definitions_operations#MetricDefinitionsOperations.{}',
client_factory=cf_metric_def,
@ -125,7 +131,7 @@ def load_command_table(self, _):
g.custom_command('scope add', 'add_scope')
g.custom_command('scope remove', 'remove_scope')
with self.command_group('monitor alert', alert_sdk, custom_command_type=alert_custom) as g:
with self.command_group('monitor alert', alert_sdk, custom_command_type=alert_custom, deprecate_info=self.deprecate(redirect='monitor metrics alert', hide='2.0.44')) as g:
g.custom_command('create', 'create_metric_rule')
g.command('delete', 'delete')
g.show_command('show', 'get')
@ -187,3 +193,10 @@ def load_command_table(self, _):
from .transformers import metrics_table, metrics_definitions_table
g.command('list', 'list', command_type=metric_operations_sdk, table_transformer=metrics_table)
g.command('list-definitions', 'list', command_type=metric_definitions_sdk, table_transformer=metrics_definitions_table)
with self.command_group('monitor metrics alert', metric_alert_sdk, custom_command_type=alert_custom, client_factory=cf_metric_alerts) as g:
g.custom_command('create', 'create_metric_alert', custom_command_type=alert_custom)
g.command('delete', 'delete')
g.custom_command('list', 'list_metric_alerts', custom_command_type=alert_custom)
g.command('show', 'get')
g.generic_update_command('update', custom_func_name='update_metric_alert', custom_func_type=alert_custom)

Просмотреть файл

@ -0,0 +1,71 @@
/* PARSER RULES */
grammar MetricAlertCondition ;
/* Main Rules */
expression : aggregation (namespace '.')* (QUOTE metric QUOTE WHITESPACE | metric) operator threshold (WHITESPACE dimensions)* NEWLINE* ;
aggregation : WORD WHITESPACE ;
namespace : WORD ;
metric : (WORD | WHITESPACE)+;
operator : OPERATOR WHITESPACE ;
threshold : NUMBER ;
/* Dimensions */
where : WHERE WHITESPACE ;
dimensions : where dimension (dim_separator dimension)* ;
dimension : dim_name dim_operator dim_values ;
dim_separator : (AND | ',') WHITESPACE ;
dim_operator : (INCLUDES | EXCLUDES) WHITESPACE ;
dim_val_separator : (OR | ',') WHITESPACE ;
dim_name : WORD WHITESPACE ;
dim_values : dim_value (dim_val_separator dim_value)* ;
dim_value : (NUMBER | WORD | WHITESPACE)+ ;
/* LEXER RULES */
fragment A : ('a'|'A') ;
fragment C : ('c'|'C') ;
fragment D : ('d'|'D') ;
fragment E : ('e'|'E') ;
fragment H : ('h'|'H') ;
fragment I : ('i'|'I') ;
fragment L : ('l'|'L') ;
fragment N : ('n'|'N') ;
fragment O : ('o'|'O') ;
fragment R : ('r'|'R') ;
fragment S : ('s'|'S') ;
fragment U : ('u'|'U') ;
fragment W : ('w'|'W') ;
fragment X : ('x'|'X') ;
fragment DIGIT : [0-9] ;
fragment LOWERCASE : [a-z] ;
fragment UPPERCASE : [A-Z] ;
WHERE : W H E R E ;
AND : A N D ;
INCLUDES : I N C L U D E S ;
EXCLUDES : E X C L U D E S ;
OR : O R ;
OPERATOR : ('<' | '<=' | '=' | '>=' | '>' | '!=') ;
NUMBER : DIGIT+ ([.,] DIGIT+)? ;
QUOTE : ('\'' | '"') ;
WHITESPACE : (' ' | '\t')+ ;
NEWLINE : ('\r'? '\n' | '\r')+ ;
WORD : (LOWERCASE | UPPERCASE | DIGIT | '_')+ ;

Просмотреть файл

@ -0,0 +1,15 @@
T__0=1
T__1=2
WHERE=3
AND=4
IN=5
IS=6
OR=7
OPERATOR=8
NUMBER=9
QUOTE=10
WHITESPACE=11
NEWLINE=12
WORD=13
'.'=1
','=2

Просмотреть файл

@ -0,0 +1,141 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------
# pylint: disable=all
# Generated from MetricAlertCondition.g4 by ANTLR 4.7.1
# encoding: utf-8
from __future__ import print_function
from antlr4 import *
from io import StringIO
import sys
def serializedATN():
with StringIO() as buf:
buf.write(u"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2")
buf.write(u"\17\u00b4\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6")
buf.write(u"\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4")
buf.write(u"\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t")
buf.write(u"\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27")
buf.write(u"\4\30\t\30\4\31\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4")
buf.write(u"\35\t\35\4\36\t\36\4\37\t\37\3\2\3\2\3\3\3\3\3\4\3\4")
buf.write(u"\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3\b\3\t\3\t\3\n\3\n\3\13")
buf.write(u"\3\13\3\f\3\f\3\r\3\r\3\16\3\16\3\17\3\17\3\20\3\20\3")
buf.write(u"\21\3\21\3\22\3\22\3\23\3\23\3\24\3\24\3\25\3\25\3\25")
buf.write(u"\3\25\3\25\3\25\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3")
buf.write(u"\27\3\27\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\30\3\30")
buf.write(u"\3\30\3\30\3\30\3\30\3\31\3\31\3\31\3\32\3\32\3\32\3")
buf.write(u"\32\3\32\3\32\3\32\3\32\3\32\5\32\u008e\n\32\3\33\6\33")
buf.write(u"\u0091\n\33\r\33\16\33\u0092\3\33\3\33\6\33\u0097\n\33")
buf.write(u"\r\33\16\33\u0098\5\33\u009b\n\33\3\34\3\34\3\35\6\35")
buf.write(u"\u00a0\n\35\r\35\16\35\u00a1\3\36\5\36\u00a5\n\36\3\36")
buf.write(u"\3\36\6\36\u00a9\n\36\r\36\16\36\u00aa\3\37\3\37\3\37")
buf.write(u"\3\37\6\37\u00b1\n\37\r\37\16\37\u00b2\2\2 \3\3\5\4\7")
buf.write(u"\2\t\2\13\2\r\2\17\2\21\2\23\2\25\2\27\2\31\2\33\2\35")
buf.write(u"\2\37\2!\2#\2%\2\'\2)\5+\6-\7/\b\61\t\63\n\65\13\67\f")
buf.write(u"9\r;\16=\17\3\2\26\4\2CCcc\4\2EEee\4\2FFff\4\2GGgg\4")
buf.write(u"\2JJjj\4\2KKkk\4\2NNnn\4\2PPpp\4\2QQqq\4\2TTtt\4\2UU")
buf.write(u"uu\4\2WWww\4\2YYyy\4\2ZZzz\3\2\62;\3\2c|\3\2C\\\4\2.")
buf.write(u".\60\60\4\2$$))\4\2\13\13\"\"\2\u00b2\2\3\3\2\2\2\2\5")
buf.write(u"\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2")
buf.write(u"\2\61\3\2\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2")
buf.write(u"\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\3?\3\2\2\2\5A\3\2\2")
buf.write(u"\2\7C\3\2\2\2\tE\3\2\2\2\13G\3\2\2\2\rI\3\2\2\2\17K\3")
buf.write(u"\2\2\2\21M\3\2\2\2\23O\3\2\2\2\25Q\3\2\2\2\27S\3\2\2")
buf.write(u"\2\31U\3\2\2\2\33W\3\2\2\2\35Y\3\2\2\2\37[\3\2\2\2!]")
buf.write(u"\3\2\2\2#_\3\2\2\2%a\3\2\2\2\'c\3\2\2\2)e\3\2\2\2+k\3")
buf.write(u"\2\2\2-o\3\2\2\2/x\3\2\2\2\61\u0081\3\2\2\2\63\u008d")
buf.write(u"\3\2\2\2\65\u0090\3\2\2\2\67\u009c\3\2\2\29\u009f\3\2")
buf.write(u"\2\2;\u00a8\3\2\2\2=\u00b0\3\2\2\2?@\7\60\2\2@\4\3\2")
buf.write(u"\2\2AB\7.\2\2B\6\3\2\2\2CD\t\2\2\2D\b\3\2\2\2EF\t\3\2")
buf.write(u"\2F\n\3\2\2\2GH\t\4\2\2H\f\3\2\2\2IJ\t\5\2\2J\16\3\2")
buf.write(u"\2\2KL\t\6\2\2L\20\3\2\2\2MN\t\7\2\2N\22\3\2\2\2OP\t")
buf.write(u"\b\2\2P\24\3\2\2\2QR\t\t\2\2R\26\3\2\2\2ST\t\n\2\2T\30")
buf.write(u"\3\2\2\2UV\t\13\2\2V\32\3\2\2\2WX\t\f\2\2X\34\3\2\2\2")
buf.write(u"YZ\t\r\2\2Z\36\3\2\2\2[\\\t\16\2\2\\ \3\2\2\2]^\t\17")
buf.write(u"\2\2^\"\3\2\2\2_`\t\20\2\2`$\3\2\2\2ab\t\21\2\2b&\3\2")
buf.write(u"\2\2cd\t\22\2\2d(\3\2\2\2ef\5\37\20\2fg\5\17\b\2gh\5")
buf.write(u"\r\7\2hi\5\31\r\2ij\5\r\7\2j*\3\2\2\2kl\5\7\4\2lm\5\25")
buf.write(u"\13\2mn\5\13\6\2n,\3\2\2\2op\5\21\t\2pq\5\25\13\2qr\5")
buf.write(u"\t\5\2rs\5\23\n\2st\5\35\17\2tu\5\13\6\2uv\5\r\7\2vw")
buf.write(u"\5\33\16\2w.\3\2\2\2xy\5\r\7\2yz\5!\21\2z{\5\t\5\2{|")
buf.write(u"\5\23\n\2|}\5\35\17\2}~\5\13\6\2~\177\5\r\7\2\177\u0080")
buf.write(u"\5\33\16\2\u0080\60\3\2\2\2\u0081\u0082\5\27\f\2\u0082")
buf.write(u"\u0083\5\31\r\2\u0083\62\3\2\2\2\u0084\u008e\7>\2\2\u0085")
buf.write(u"\u0086\7>\2\2\u0086\u008e\7?\2\2\u0087\u008e\7?\2\2\u0088")
buf.write(u"\u0089\7@\2\2\u0089\u008e\7?\2\2\u008a\u008e\7@\2\2\u008b")
buf.write(u"\u008c\7#\2\2\u008c\u008e\7?\2\2\u008d\u0084\3\2\2\2")
buf.write(u"\u008d\u0085\3\2\2\2\u008d\u0087\3\2\2\2\u008d\u0088")
buf.write(u"\3\2\2\2\u008d\u008a\3\2\2\2\u008d\u008b\3\2\2\2\u008e")
buf.write(u"\64\3\2\2\2\u008f\u0091\5#\22\2\u0090\u008f\3\2\2\2\u0091")
buf.write(u"\u0092\3\2\2\2\u0092\u0090\3\2\2\2\u0092\u0093\3\2\2")
buf.write(u"\2\u0093\u009a\3\2\2\2\u0094\u0096\t\23\2\2\u0095\u0097")
buf.write(u"\5#\22\2\u0096\u0095\3\2\2\2\u0097\u0098\3\2\2\2\u0098")
buf.write(u"\u0096\3\2\2\2\u0098\u0099\3\2\2\2\u0099\u009b\3\2\2")
buf.write(u"\2\u009a\u0094\3\2\2\2\u009a\u009b\3\2\2\2\u009b\66\3")
buf.write(u"\2\2\2\u009c\u009d\t\24\2\2\u009d8\3\2\2\2\u009e\u00a0")
buf.write(u"\t\25\2\2\u009f\u009e\3\2\2\2\u00a0\u00a1\3\2\2\2\u00a1")
buf.write(u"\u009f\3\2\2\2\u00a1\u00a2\3\2\2\2\u00a2:\3\2\2\2\u00a3")
buf.write(u"\u00a5\7\17\2\2\u00a4\u00a3\3\2\2\2\u00a4\u00a5\3\2\2")
buf.write(u"\2\u00a5\u00a6\3\2\2\2\u00a6\u00a9\7\f\2\2\u00a7\u00a9")
buf.write(u"\7\17\2\2\u00a8\u00a4\3\2\2\2\u00a8\u00a7\3\2\2\2\u00a9")
buf.write(u"\u00aa\3\2\2\2\u00aa\u00a8\3\2\2\2\u00aa\u00ab\3\2\2")
buf.write(u"\2\u00ab<\3\2\2\2\u00ac\u00b1\5%\23\2\u00ad\u00b1\5\'")
buf.write(u"\24\2\u00ae\u00b1\5#\22\2\u00af\u00b1\7a\2\2\u00b0\u00ac")
buf.write(u"\3\2\2\2\u00b0\u00ad\3\2\2\2\u00b0\u00ae\3\2\2\2\u00b0")
buf.write(u"\u00af\3\2\2\2\u00b1\u00b2\3\2\2\2\u00b2\u00b0\3\2\2")
buf.write(u"\2\u00b2\u00b3\3\2\2\2\u00b3>\3\2\2\2\r\2\u008d\u0092")
buf.write(u"\u0098\u009a\u00a1\u00a4\u00a8\u00aa\u00b0\u00b2\2")
return buf.getvalue()
class MetricAlertConditionLexer(Lexer):
atn = ATNDeserializer().deserialize(serializedATN())
decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]
T__0 = 1
T__1 = 2
WHERE = 3
AND = 4
INCLUDES = 5
EXCLUDES = 6
OR = 7
OPERATOR = 8
NUMBER = 9
QUOTE = 10
WHITESPACE = 11
NEWLINE = 12
WORD = 13
channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ]
modeNames = [ u"DEFAULT_MODE" ]
literalNames = [ u"<INVALID>",
u"'.'", u"','" ]
symbolicNames = [ u"<INVALID>",
u"WHERE", u"AND", u"INCLUDES", u"EXCLUDES", u"OR", u"OPERATOR",
u"NUMBER", u"QUOTE", u"WHITESPACE", u"NEWLINE", u"WORD" ]
ruleNames = [ u"T__0", u"T__1", u"A", u"C", u"D", u"E", u"H", u"I",
u"L", u"N", u"O", u"R", u"S", u"U", u"W", u"X", u"DIGIT",
u"LOWERCASE", u"UPPERCASE", u"WHERE", u"AND", u"INCLUDES",
u"EXCLUDES", u"OR", u"OPERATOR", u"NUMBER", u"QUOTE",
u"WHITESPACE", u"NEWLINE", u"WORD" ]
grammarFileName = u"MetricAlertCondition.g4"
def __init__(self, input=None, output=sys.stdout):
super(MetricAlertConditionLexer, self).__init__(input, output=output)
self.checkVersion("4.7.1")
self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache())
self._actions = None
self._predicates = None

Просмотреть файл

@ -0,0 +1,148 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------
# pylint: disable=all
# Generated from MetricAlertCondition.g4 by ANTLR 4.7.1
from antlr4 import *
# This class defines a complete listener for a parse tree produced by MetricAlertConditionParser.
class MetricAlertConditionListener(ParseTreeListener):
# Enter a parse tree produced by MetricAlertConditionParser#expression.
def enterExpression(self, ctx):
pass
# Exit a parse tree produced by MetricAlertConditionParser#expression.
def exitExpression(self, ctx):
pass
# Enter a parse tree produced by MetricAlertConditionParser#aggregation.
def enterAggregation(self, ctx):
pass
# Exit a parse tree produced by MetricAlertConditionParser#aggregation.
def exitAggregation(self, ctx):
pass
# Enter a parse tree produced by MetricAlertConditionParser#namespace.
def enterNamespace(self, ctx):
pass
# Exit a parse tree produced by MetricAlertConditionParser#namespace.
def exitNamespace(self, ctx):
pass
# Enter a parse tree produced by MetricAlertConditionParser#metric.
def enterMetric(self, ctx):
pass
# Exit a parse tree produced by MetricAlertConditionParser#metric.
def exitMetric(self, ctx):
pass
# Enter a parse tree produced by MetricAlertConditionParser#operator.
def enterOperator(self, ctx):
pass
# Exit a parse tree produced by MetricAlertConditionParser#operator.
def exitOperator(self, ctx):
pass
# Enter a parse tree produced by MetricAlertConditionParser#threshold.
def enterThreshold(self, ctx):
pass
# Exit a parse tree produced by MetricAlertConditionParser#threshold.
def exitThreshold(self, ctx):
pass
# Enter a parse tree produced by MetricAlertConditionParser#where.
def enterWhere(self, ctx):
pass
# Exit a parse tree produced by MetricAlertConditionParser#where.
def exitWhere(self, ctx):
pass
# Enter a parse tree produced by MetricAlertConditionParser#dimensions.
def enterDimensions(self, ctx):
pass
# Exit a parse tree produced by MetricAlertConditionParser#dimensions.
def exitDimensions(self, ctx):
pass
# Enter a parse tree produced by MetricAlertConditionParser#dimension.
def enterDimension(self, ctx):
pass
# Exit a parse tree produced by MetricAlertConditionParser#dimension.
def exitDimension(self, ctx):
pass
# Enter a parse tree produced by MetricAlertConditionParser#dim_separator.
def enterDim_separator(self, ctx):
pass
# Exit a parse tree produced by MetricAlertConditionParser#dim_separator.
def exitDim_separator(self, ctx):
pass
# Enter a parse tree produced by MetricAlertConditionParser#dim_operator.
def enterDim_operator(self, ctx):
pass
# Exit a parse tree produced by MetricAlertConditionParser#dim_operator.
def exitDim_operator(self, ctx):
pass
# Enter a parse tree produced by MetricAlertConditionParser#dim_val_separator.
def enterDim_val_separator(self, ctx):
pass
# Exit a parse tree produced by MetricAlertConditionParser#dim_val_separator.
def exitDim_val_separator(self, ctx):
pass
# Enter a parse tree produced by MetricAlertConditionParser#dim_name.
def enterDim_name(self, ctx):
pass
# Exit a parse tree produced by MetricAlertConditionParser#dim_name.
def exitDim_name(self, ctx):
pass
# Enter a parse tree produced by MetricAlertConditionParser#dim_values.
def enterDim_values(self, ctx):
pass
# Exit a parse tree produced by MetricAlertConditionParser#dim_values.
def exitDim_values(self, ctx):
pass
# Enter a parse tree produced by MetricAlertConditionParser#dim_value.
def enterDim_value(self, ctx):
pass
# Exit a parse tree produced by MetricAlertConditionParser#dim_value.
def exitDim_value(self, ctx):
pass

Просмотреть файл

@ -0,0 +1,992 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------
# pylint: disable=all
# Generated from MetricAlertCondition.g4 by ANTLR 4.7.1
# encoding: utf-8
from __future__ import print_function
from antlr4 import *
from io import StringIO
import sys
def serializedATN():
with StringIO() as buf:
buf.write(u"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3")
buf.write(u"\17{\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7")
buf.write(u"\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4")
buf.write(u"\16\t\16\4\17\t\17\4\20\t\20\3\2\3\2\3\2\3\2\7\2%\n\2")
buf.write(u"\f\2\16\2(\13\2\3\2\3\2\3\2\3\2\3\2\3\2\5\2\60\n\2\3")
buf.write(u"\2\3\2\3\2\3\2\7\2\66\n\2\f\2\16\29\13\2\3\2\7\2<\n\2")
buf.write(u"\f\2\16\2?\13\2\3\3\3\3\3\3\3\4\3\4\3\5\6\5G\n\5\r\5")
buf.write(u"\16\5H\3\6\3\6\3\6\3\7\3\7\3\b\3\b\3\b\3\t\3\t\3\t\3")
buf.write(u"\t\3\t\7\tX\n\t\f\t\16\t[\13\t\3\n\3\n\3\n\3\n\3\13\3")
buf.write(u"\13\3\13\3\f\3\f\3\f\3\r\3\r\3\r\3\16\3\16\3\16\3\17")
buf.write(u"\3\17\3\17\3\17\7\17q\n\17\f\17\16\17t\13\17\3\20\6\20")
buf.write(u"w\n\20\r\20\16\20x\3\20\2\2\21\2\4\6\b\n\f\16\20\22\24")
buf.write(u"\26\30\32\34\36\2\7\4\2\r\r\17\17\4\2\4\4\6\6\3\2\7\b")
buf.write(u"\4\2\4\4\t\t\5\2\13\13\r\r\17\17\2s\2 \3\2\2\2\4@\3\2")
buf.write(u"\2\2\6C\3\2\2\2\bF\3\2\2\2\nJ\3\2\2\2\fM\3\2\2\2\16O")
buf.write(u"\3\2\2\2\20R\3\2\2\2\22\\\3\2\2\2\24`\3\2\2\2\26c\3\2")
buf.write(u"\2\2\30f\3\2\2\2\32i\3\2\2\2\34l\3\2\2\2\36v\3\2\2\2")
buf.write(u" &\5\4\3\2!\"\5\6\4\2\"#\7\3\2\2#%\3\2\2\2$!\3\2\2\2")
buf.write(u"%(\3\2\2\2&$\3\2\2\2&\'\3\2\2\2\'/\3\2\2\2(&\3\2\2\2")
buf.write(u")*\7\f\2\2*+\5\b\5\2+,\7\f\2\2,-\7\r\2\2-\60\3\2\2\2")
buf.write(u".\60\5\b\5\2/)\3\2\2\2/.\3\2\2\2\60\61\3\2\2\2\61\62")
buf.write(u"\5\n\6\2\62\67\5\f\7\2\63\64\7\r\2\2\64\66\5\20\t\2\65")
buf.write(u"\63\3\2\2\2\669\3\2\2\2\67\65\3\2\2\2\678\3\2\2\28=\3")
buf.write(u"\2\2\29\67\3\2\2\2:<\7\16\2\2;:\3\2\2\2<?\3\2\2\2=;\3")
buf.write(u"\2\2\2=>\3\2\2\2>\3\3\2\2\2?=\3\2\2\2@A\7\17\2\2AB\7")
buf.write(u"\r\2\2B\5\3\2\2\2CD\7\17\2\2D\7\3\2\2\2EG\t\2\2\2FE\3")
buf.write(u"\2\2\2GH\3\2\2\2HF\3\2\2\2HI\3\2\2\2I\t\3\2\2\2JK\7\n")
buf.write(u"\2\2KL\7\r\2\2L\13\3\2\2\2MN\7\13\2\2N\r\3\2\2\2OP\7")
buf.write(u"\5\2\2PQ\7\r\2\2Q\17\3\2\2\2RS\5\16\b\2SY\5\22\n\2TU")
buf.write(u"\5\24\13\2UV\5\22\n\2VX\3\2\2\2WT\3\2\2\2X[\3\2\2\2Y")
buf.write(u"W\3\2\2\2YZ\3\2\2\2Z\21\3\2\2\2[Y\3\2\2\2\\]\5\32\16")
buf.write(u"\2]^\5\26\f\2^_\5\34\17\2_\23\3\2\2\2`a\t\3\2\2ab\7\r")
buf.write(u"\2\2b\25\3\2\2\2cd\t\4\2\2de\7\r\2\2e\27\3\2\2\2fg\t")
buf.write(u"\5\2\2gh\7\r\2\2h\31\3\2\2\2ij\7\17\2\2jk\7\r\2\2k\33")
buf.write(u"\3\2\2\2lr\5\36\20\2mn\5\30\r\2no\5\36\20\2oq\3\2\2\2")
buf.write(u"pm\3\2\2\2qt\3\2\2\2rp\3\2\2\2rs\3\2\2\2s\35\3\2\2\2")
buf.write(u"tr\3\2\2\2uw\t\6\2\2vu\3\2\2\2wx\3\2\2\2xv\3\2\2\2xy")
buf.write(u"\3\2\2\2y\37\3\2\2\2\n&/\67=HYrx")
return buf.getvalue()
class MetricAlertConditionParser ( Parser ):
grammarFileName = "MetricAlertCondition.g4"
atn = ATNDeserializer().deserialize(serializedATN())
decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]
sharedContextCache = PredictionContextCache()
literalNames = [ u"<INVALID>", u"'.'", u"','" ]
symbolicNames = [ u"<INVALID>", u"<INVALID>", u"<INVALID>", u"WHERE",
u"AND", u"INCLUDES", u"EXCLUDES", u"OR", u"OPERATOR",
u"NUMBER", u"QUOTE", u"WHITESPACE", u"NEWLINE", u"WORD" ]
RULE_expression = 0
RULE_aggregation = 1
RULE_namespace = 2
RULE_metric = 3
RULE_operator = 4
RULE_threshold = 5
RULE_where = 6
RULE_dimensions = 7
RULE_dimension = 8
RULE_dim_separator = 9
RULE_dim_operator = 10
RULE_dim_val_separator = 11
RULE_dim_name = 12
RULE_dim_values = 13
RULE_dim_value = 14
ruleNames = [ u"expression", u"aggregation", u"namespace", u"metric",
u"operator", u"threshold", u"where", u"dimensions", u"dimension",
u"dim_separator", u"dim_operator", u"dim_val_separator",
u"dim_name", u"dim_values", u"dim_value" ]
EOF = Token.EOF
T__0=1
T__1=2
WHERE=3
AND=4
INCLUDES=5
EXCLUDES=6
OR=7
OPERATOR=8
NUMBER=9
QUOTE=10
WHITESPACE=11
NEWLINE=12
WORD=13
def __init__(self, input, output=sys.stdout):
super(MetricAlertConditionParser, self).__init__(input, output=output)
self.checkVersion("4.7.1")
self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)
self._predicates = None
class ExpressionContext(ParserRuleContext):
def __init__(self, parser, parent=None, invokingState=-1):
super(MetricAlertConditionParser.ExpressionContext, self).__init__(parent, invokingState)
self.parser = parser
def aggregation(self):
return self.getTypedRuleContext(MetricAlertConditionParser.AggregationContext,0)
def operator(self):
return self.getTypedRuleContext(MetricAlertConditionParser.OperatorContext,0)
def threshold(self):
return self.getTypedRuleContext(MetricAlertConditionParser.ThresholdContext,0)
def QUOTE(self, i=None):
if i is None:
return self.getTokens(MetricAlertConditionParser.QUOTE)
else:
return self.getToken(MetricAlertConditionParser.QUOTE, i)
def metric(self):
return self.getTypedRuleContext(MetricAlertConditionParser.MetricContext,0)
def WHITESPACE(self, i=None):
if i is None:
return self.getTokens(MetricAlertConditionParser.WHITESPACE)
else:
return self.getToken(MetricAlertConditionParser.WHITESPACE, i)
def namespace(self, i=None):
if i is None:
return self.getTypedRuleContexts(MetricAlertConditionParser.NamespaceContext)
else:
return self.getTypedRuleContext(MetricAlertConditionParser.NamespaceContext,i)
def dimensions(self, i=None):
if i is None:
return self.getTypedRuleContexts(MetricAlertConditionParser.DimensionsContext)
else:
return self.getTypedRuleContext(MetricAlertConditionParser.DimensionsContext,i)
def NEWLINE(self, i=None):
if i is None:
return self.getTokens(MetricAlertConditionParser.NEWLINE)
else:
return self.getToken(MetricAlertConditionParser.NEWLINE, i)
def getRuleIndex(self):
return MetricAlertConditionParser.RULE_expression
def enterRule(self, listener):
if hasattr(listener, "enterExpression"):
listener.enterExpression(self)
def exitRule(self, listener):
if hasattr(listener, "exitExpression"):
listener.exitExpression(self)
def expression(self):
localctx = MetricAlertConditionParser.ExpressionContext(self, self._ctx, self.state)
self.enterRule(localctx, 0, self.RULE_expression)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 30
self.aggregation()
self.state = 36
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,0,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt==1:
self.state = 31
self.namespace()
self.state = 32
self.match(MetricAlertConditionParser.T__0)
self.state = 38
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,0,self._ctx)
self.state = 45
self._errHandler.sync(self)
token = self._input.LA(1)
if token in [MetricAlertConditionParser.QUOTE]:
self.state = 39
self.match(MetricAlertConditionParser.QUOTE)
self.state = 40
self.metric()
self.state = 41
self.match(MetricAlertConditionParser.QUOTE)
self.state = 42
self.match(MetricAlertConditionParser.WHITESPACE)
pass
elif token in [MetricAlertConditionParser.WHITESPACE, MetricAlertConditionParser.WORD]:
self.state = 44
self.metric()
pass
else:
raise NoViableAltException(self)
self.state = 47
self.operator()
self.state = 48
self.threshold()
self.state = 53
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==MetricAlertConditionParser.WHITESPACE:
self.state = 49
self.match(MetricAlertConditionParser.WHITESPACE)
self.state = 50
self.dimensions()
self.state = 55
self._errHandler.sync(self)
_la = self._input.LA(1)
self.state = 59
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==MetricAlertConditionParser.NEWLINE:
self.state = 56
self.match(MetricAlertConditionParser.NEWLINE)
self.state = 61
self._errHandler.sync(self)
_la = self._input.LA(1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class AggregationContext(ParserRuleContext):
def __init__(self, parser, parent=None, invokingState=-1):
super(MetricAlertConditionParser.AggregationContext, self).__init__(parent, invokingState)
self.parser = parser
def WORD(self):
return self.getToken(MetricAlertConditionParser.WORD, 0)
def WHITESPACE(self):
return self.getToken(MetricAlertConditionParser.WHITESPACE, 0)
def getRuleIndex(self):
return MetricAlertConditionParser.RULE_aggregation
def enterRule(self, listener):
if hasattr(listener, "enterAggregation"):
listener.enterAggregation(self)
def exitRule(self, listener):
if hasattr(listener, "exitAggregation"):
listener.exitAggregation(self)
def aggregation(self):
localctx = MetricAlertConditionParser.AggregationContext(self, self._ctx, self.state)
self.enterRule(localctx, 2, self.RULE_aggregation)
try:
self.enterOuterAlt(localctx, 1)
self.state = 62
self.match(MetricAlertConditionParser.WORD)
self.state = 63
self.match(MetricAlertConditionParser.WHITESPACE)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class NamespaceContext(ParserRuleContext):
def __init__(self, parser, parent=None, invokingState=-1):
super(MetricAlertConditionParser.NamespaceContext, self).__init__(parent, invokingState)
self.parser = parser
def WORD(self):
return self.getToken(MetricAlertConditionParser.WORD, 0)
def getRuleIndex(self):
return MetricAlertConditionParser.RULE_namespace
def enterRule(self, listener):
if hasattr(listener, "enterNamespace"):
listener.enterNamespace(self)
def exitRule(self, listener):
if hasattr(listener, "exitNamespace"):
listener.exitNamespace(self)
def namespace(self):
localctx = MetricAlertConditionParser.NamespaceContext(self, self._ctx, self.state)
self.enterRule(localctx, 4, self.RULE_namespace)
try:
self.enterOuterAlt(localctx, 1)
self.state = 65
self.match(MetricAlertConditionParser.WORD)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class MetricContext(ParserRuleContext):
def __init__(self, parser, parent=None, invokingState=-1):
super(MetricAlertConditionParser.MetricContext, self).__init__(parent, invokingState)
self.parser = parser
def WORD(self, i=None):
if i is None:
return self.getTokens(MetricAlertConditionParser.WORD)
else:
return self.getToken(MetricAlertConditionParser.WORD, i)
def WHITESPACE(self, i=None):
if i is None:
return self.getTokens(MetricAlertConditionParser.WHITESPACE)
else:
return self.getToken(MetricAlertConditionParser.WHITESPACE, i)
def getRuleIndex(self):
return MetricAlertConditionParser.RULE_metric
def enterRule(self, listener):
if hasattr(listener, "enterMetric"):
listener.enterMetric(self)
def exitRule(self, listener):
if hasattr(listener, "exitMetric"):
listener.exitMetric(self)
def metric(self):
localctx = MetricAlertConditionParser.MetricContext(self, self._ctx, self.state)
self.enterRule(localctx, 6, self.RULE_metric)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 68
self._errHandler.sync(self)
_la = self._input.LA(1)
while True:
self.state = 67
_la = self._input.LA(1)
if not(_la==MetricAlertConditionParser.WHITESPACE or _la==MetricAlertConditionParser.WORD):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 70
self._errHandler.sync(self)
_la = self._input.LA(1)
if not (_la==MetricAlertConditionParser.WHITESPACE or _la==MetricAlertConditionParser.WORD):
break
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class OperatorContext(ParserRuleContext):
def __init__(self, parser, parent=None, invokingState=-1):
super(MetricAlertConditionParser.OperatorContext, self).__init__(parent, invokingState)
self.parser = parser
def OPERATOR(self):
return self.getToken(MetricAlertConditionParser.OPERATOR, 0)
def WHITESPACE(self):
return self.getToken(MetricAlertConditionParser.WHITESPACE, 0)
def getRuleIndex(self):
return MetricAlertConditionParser.RULE_operator
def enterRule(self, listener):
if hasattr(listener, "enterOperator"):
listener.enterOperator(self)
def exitRule(self, listener):
if hasattr(listener, "exitOperator"):
listener.exitOperator(self)
def operator(self):
localctx = MetricAlertConditionParser.OperatorContext(self, self._ctx, self.state)
self.enterRule(localctx, 8, self.RULE_operator)
try:
self.enterOuterAlt(localctx, 1)
self.state = 72
self.match(MetricAlertConditionParser.OPERATOR)
self.state = 73
self.match(MetricAlertConditionParser.WHITESPACE)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class ThresholdContext(ParserRuleContext):
def __init__(self, parser, parent=None, invokingState=-1):
super(MetricAlertConditionParser.ThresholdContext, self).__init__(parent, invokingState)
self.parser = parser
def NUMBER(self):
return self.getToken(MetricAlertConditionParser.NUMBER, 0)
def getRuleIndex(self):
return MetricAlertConditionParser.RULE_threshold
def enterRule(self, listener):
if hasattr(listener, "enterThreshold"):
listener.enterThreshold(self)
def exitRule(self, listener):
if hasattr(listener, "exitThreshold"):
listener.exitThreshold(self)
def threshold(self):
localctx = MetricAlertConditionParser.ThresholdContext(self, self._ctx, self.state)
self.enterRule(localctx, 10, self.RULE_threshold)
try:
self.enterOuterAlt(localctx, 1)
self.state = 75
self.match(MetricAlertConditionParser.NUMBER)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class WhereContext(ParserRuleContext):
def __init__(self, parser, parent=None, invokingState=-1):
super(MetricAlertConditionParser.WhereContext, self).__init__(parent, invokingState)
self.parser = parser
def WHERE(self):
return self.getToken(MetricAlertConditionParser.WHERE, 0)
def WHITESPACE(self):
return self.getToken(MetricAlertConditionParser.WHITESPACE, 0)
def getRuleIndex(self):
return MetricAlertConditionParser.RULE_where
def enterRule(self, listener):
if hasattr(listener, "enterWhere"):
listener.enterWhere(self)
def exitRule(self, listener):
if hasattr(listener, "exitWhere"):
listener.exitWhere(self)
def where(self):
localctx = MetricAlertConditionParser.WhereContext(self, self._ctx, self.state)
self.enterRule(localctx, 12, self.RULE_where)
try:
self.enterOuterAlt(localctx, 1)
self.state = 77
self.match(MetricAlertConditionParser.WHERE)
self.state = 78
self.match(MetricAlertConditionParser.WHITESPACE)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class DimensionsContext(ParserRuleContext):
def __init__(self, parser, parent=None, invokingState=-1):
super(MetricAlertConditionParser.DimensionsContext, self).__init__(parent, invokingState)
self.parser = parser
def where(self):
return self.getTypedRuleContext(MetricAlertConditionParser.WhereContext,0)
def dimension(self, i=None):
if i is None:
return self.getTypedRuleContexts(MetricAlertConditionParser.DimensionContext)
else:
return self.getTypedRuleContext(MetricAlertConditionParser.DimensionContext,i)
def dim_separator(self, i=None):
if i is None:
return self.getTypedRuleContexts(MetricAlertConditionParser.Dim_separatorContext)
else:
return self.getTypedRuleContext(MetricAlertConditionParser.Dim_separatorContext,i)
def getRuleIndex(self):
return MetricAlertConditionParser.RULE_dimensions
def enterRule(self, listener):
if hasattr(listener, "enterDimensions"):
listener.enterDimensions(self)
def exitRule(self, listener):
if hasattr(listener, "exitDimensions"):
listener.exitDimensions(self)
def dimensions(self):
localctx = MetricAlertConditionParser.DimensionsContext(self, self._ctx, self.state)
self.enterRule(localctx, 14, self.RULE_dimensions)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 80
self.where()
self.state = 81
self.dimension()
self.state = 87
self._errHandler.sync(self)
_la = self._input.LA(1)
while _la==MetricAlertConditionParser.T__1 or _la==MetricAlertConditionParser.AND:
self.state = 82
self.dim_separator()
self.state = 83
self.dimension()
self.state = 89
self._errHandler.sync(self)
_la = self._input.LA(1)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class DimensionContext(ParserRuleContext):
def __init__(self, parser, parent=None, invokingState=-1):
super(MetricAlertConditionParser.DimensionContext, self).__init__(parent, invokingState)
self.parser = parser
def dim_name(self):
return self.getTypedRuleContext(MetricAlertConditionParser.Dim_nameContext,0)
def dim_operator(self):
return self.getTypedRuleContext(MetricAlertConditionParser.Dim_operatorContext,0)
def dim_values(self):
return self.getTypedRuleContext(MetricAlertConditionParser.Dim_valuesContext,0)
def getRuleIndex(self):
return MetricAlertConditionParser.RULE_dimension
def enterRule(self, listener):
if hasattr(listener, "enterDimension"):
listener.enterDimension(self)
def exitRule(self, listener):
if hasattr(listener, "exitDimension"):
listener.exitDimension(self)
def dimension(self):
localctx = MetricAlertConditionParser.DimensionContext(self, self._ctx, self.state)
self.enterRule(localctx, 16, self.RULE_dimension)
try:
self.enterOuterAlt(localctx, 1)
self.state = 90
self.dim_name()
self.state = 91
self.dim_operator()
self.state = 92
self.dim_values()
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class Dim_separatorContext(ParserRuleContext):
def __init__(self, parser, parent=None, invokingState=-1):
super(MetricAlertConditionParser.Dim_separatorContext, self).__init__(parent, invokingState)
self.parser = parser
def WHITESPACE(self):
return self.getToken(MetricAlertConditionParser.WHITESPACE, 0)
def AND(self):
return self.getToken(MetricAlertConditionParser.AND, 0)
def getRuleIndex(self):
return MetricAlertConditionParser.RULE_dim_separator
def enterRule(self, listener):
if hasattr(listener, "enterDim_separator"):
listener.enterDim_separator(self)
def exitRule(self, listener):
if hasattr(listener, "exitDim_separator"):
listener.exitDim_separator(self)
def dim_separator(self):
localctx = MetricAlertConditionParser.Dim_separatorContext(self, self._ctx, self.state)
self.enterRule(localctx, 18, self.RULE_dim_separator)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 94
_la = self._input.LA(1)
if not(_la==MetricAlertConditionParser.T__1 or _la==MetricAlertConditionParser.AND):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 95
self.match(MetricAlertConditionParser.WHITESPACE)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class Dim_operatorContext(ParserRuleContext):
def __init__(self, parser, parent=None, invokingState=-1):
super(MetricAlertConditionParser.Dim_operatorContext, self).__init__(parent, invokingState)
self.parser = parser
def WHITESPACE(self):
return self.getToken(MetricAlertConditionParser.WHITESPACE, 0)
def INCLUDES(self):
return self.getToken(MetricAlertConditionParser.INCLUDES, 0)
def EXCLUDES(self):
return self.getToken(MetricAlertConditionParser.EXCLUDES, 0)
def getRuleIndex(self):
return MetricAlertConditionParser.RULE_dim_operator
def enterRule(self, listener):
if hasattr(listener, "enterDim_operator"):
listener.enterDim_operator(self)
def exitRule(self, listener):
if hasattr(listener, "exitDim_operator"):
listener.exitDim_operator(self)
def dim_operator(self):
localctx = MetricAlertConditionParser.Dim_operatorContext(self, self._ctx, self.state)
self.enterRule(localctx, 20, self.RULE_dim_operator)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 97
_la = self._input.LA(1)
if not(_la==MetricAlertConditionParser.INCLUDES or _la==MetricAlertConditionParser.EXCLUDES):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 98
self.match(MetricAlertConditionParser.WHITESPACE)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class Dim_val_separatorContext(ParserRuleContext):
def __init__(self, parser, parent=None, invokingState=-1):
super(MetricAlertConditionParser.Dim_val_separatorContext, self).__init__(parent, invokingState)
self.parser = parser
def WHITESPACE(self):
return self.getToken(MetricAlertConditionParser.WHITESPACE, 0)
def OR(self):
return self.getToken(MetricAlertConditionParser.OR, 0)
def getRuleIndex(self):
return MetricAlertConditionParser.RULE_dim_val_separator
def enterRule(self, listener):
if hasattr(listener, "enterDim_val_separator"):
listener.enterDim_val_separator(self)
def exitRule(self, listener):
if hasattr(listener, "exitDim_val_separator"):
listener.exitDim_val_separator(self)
def dim_val_separator(self):
localctx = MetricAlertConditionParser.Dim_val_separatorContext(self, self._ctx, self.state)
self.enterRule(localctx, 22, self.RULE_dim_val_separator)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 100
_la = self._input.LA(1)
if not(_la==MetricAlertConditionParser.T__1 or _la==MetricAlertConditionParser.OR):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
self.state = 101
self.match(MetricAlertConditionParser.WHITESPACE)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class Dim_nameContext(ParserRuleContext):
def __init__(self, parser, parent=None, invokingState=-1):
super(MetricAlertConditionParser.Dim_nameContext, self).__init__(parent, invokingState)
self.parser = parser
def WORD(self):
return self.getToken(MetricAlertConditionParser.WORD, 0)
def WHITESPACE(self):
return self.getToken(MetricAlertConditionParser.WHITESPACE, 0)
def getRuleIndex(self):
return MetricAlertConditionParser.RULE_dim_name
def enterRule(self, listener):
if hasattr(listener, "enterDim_name"):
listener.enterDim_name(self)
def exitRule(self, listener):
if hasattr(listener, "exitDim_name"):
listener.exitDim_name(self)
def dim_name(self):
localctx = MetricAlertConditionParser.Dim_nameContext(self, self._ctx, self.state)
self.enterRule(localctx, 24, self.RULE_dim_name)
try:
self.enterOuterAlt(localctx, 1)
self.state = 103
self.match(MetricAlertConditionParser.WORD)
self.state = 104
self.match(MetricAlertConditionParser.WHITESPACE)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class Dim_valuesContext(ParserRuleContext):
def __init__(self, parser, parent=None, invokingState=-1):
super(MetricAlertConditionParser.Dim_valuesContext, self).__init__(parent, invokingState)
self.parser = parser
def dim_value(self, i=None):
if i is None:
return self.getTypedRuleContexts(MetricAlertConditionParser.Dim_valueContext)
else:
return self.getTypedRuleContext(MetricAlertConditionParser.Dim_valueContext,i)
def dim_val_separator(self, i=None):
if i is None:
return self.getTypedRuleContexts(MetricAlertConditionParser.Dim_val_separatorContext)
else:
return self.getTypedRuleContext(MetricAlertConditionParser.Dim_val_separatorContext,i)
def getRuleIndex(self):
return MetricAlertConditionParser.RULE_dim_values
def enterRule(self, listener):
if hasattr(listener, "enterDim_values"):
listener.enterDim_values(self)
def exitRule(self, listener):
if hasattr(listener, "exitDim_values"):
listener.exitDim_values(self)
def dim_values(self):
localctx = MetricAlertConditionParser.Dim_valuesContext(self, self._ctx, self.state)
self.enterRule(localctx, 26, self.RULE_dim_values)
try:
self.enterOuterAlt(localctx, 1)
self.state = 106
self.dim_value()
self.state = 112
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,6,self._ctx)
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt==1:
self.state = 107
self.dim_val_separator()
self.state = 108
self.dim_value()
self.state = 114
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,6,self._ctx)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx
class Dim_valueContext(ParserRuleContext):
def __init__(self, parser, parent=None, invokingState=-1):
super(MetricAlertConditionParser.Dim_valueContext, self).__init__(parent, invokingState)
self.parser = parser
def NUMBER(self, i=None):
if i is None:
return self.getTokens(MetricAlertConditionParser.NUMBER)
else:
return self.getToken(MetricAlertConditionParser.NUMBER, i)
def WORD(self, i=None):
if i is None:
return self.getTokens(MetricAlertConditionParser.WORD)
else:
return self.getToken(MetricAlertConditionParser.WORD, i)
def WHITESPACE(self, i=None):
if i is None:
return self.getTokens(MetricAlertConditionParser.WHITESPACE)
else:
return self.getToken(MetricAlertConditionParser.WHITESPACE, i)
def getRuleIndex(self):
return MetricAlertConditionParser.RULE_dim_value
def enterRule(self, listener):
if hasattr(listener, "enterDim_value"):
listener.enterDim_value(self)
def exitRule(self, listener):
if hasattr(listener, "exitDim_value"):
listener.exitDim_value(self)
def dim_value(self):
localctx = MetricAlertConditionParser.Dim_valueContext(self, self._ctx, self.state)
self.enterRule(localctx, 28, self.RULE_dim_value)
self._la = 0 # Token type
try:
self.enterOuterAlt(localctx, 1)
self.state = 116
self._errHandler.sync(self)
_alt = 1
while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER:
if _alt == 1:
self.state = 115
_la = self._input.LA(1)
if not((((_la) & ~0x3f) == 0 and ((1 << _la) & ((1 << MetricAlertConditionParser.NUMBER) | (1 << MetricAlertConditionParser.WHITESPACE) | (1 << MetricAlertConditionParser.WORD))) != 0)):
self._errHandler.recoverInline(self)
else:
self._errHandler.reportMatch(self)
self.consume()
else:
raise NoViableAltException(self)
self.state = 118
self._errHandler.sync(self)
_alt = self._interp.adaptivePredict(self._input,7,self._ctx)
except RecognitionException as re:
localctx.exception = re
self._errHandler.reportError(self, re)
self._errHandler.recover(self, re)
finally:
self.exitRule()
return localctx

Просмотреть файл

@ -0,0 +1,90 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------
# Generated from MetricAlertCondition.g4 by ANTLR 4.7.1
from .MetricAlertConditionListener import MetricAlertConditionListener
op_conversion = {
'=': 'Equals',
'!=': 'NotEquals',
'>': 'GreaterThan',
'>=': 'GreaterThanOrEqual',
'<': 'LessThan',
'<=': 'LessThanOrEqual'
}
agg_conversion = {
'avg': 'Average',
'min': 'Minimum',
'max': 'Maximum',
'total': 'Total'
}
# This class defines a complete listener for a parse tree produced by MetricAlertConditionParser.
class MetricAlertConditionValidator(MetricAlertConditionListener):
def __init__(self):
super(MetricAlertConditionValidator, self).__init__()
self.parameters = {}
self._dimension_index = 0
# Exit a parse tree produced by MetricAlertConditionParser#aggregation.
def exitAggregation(self, ctx):
aggregation = agg_conversion[ctx.getText().strip()]
self.parameters['time_aggregation'] = aggregation
# Exit a parse tree produced by MetricAlertConditionParser#namespace.
def exitNamespace(self, ctx):
self.parameters['metric_namespace'] = ctx.getText().strip()
# Exit a parse tree produced by MetricAlertConditionParser#metric.
def exitMetric(self, ctx):
self.parameters['metric_name'] = ctx.getText().strip()
# Exit a parse tree produced by MetricAlertConditionParser#operator.
def exitOperator(self, ctx):
operator = op_conversion[ctx.getText().strip()]
self.parameters['operator'] = operator
# Exit a parse tree produced by MetricAlertConditionParser#threshold.
def exitThreshold(self, ctx):
self.parameters['threshold'] = ctx.getText().strip()
# Enter a parse tree produced by MetricAlertConditionParser#dimensions.
def enterDimensions(self, ctx):
self.parameters['dimensions'] = []
# Enter a parse tree produced by MetricAlertConditionParser#dimension.
def enterDimension(self, ctx):
self.parameters['dimensions'].append({})
# Exit a parse tree produced by MetricAlertConditionParser#dimension.
def exitDimension(self, ctx):
self._dimension_index = self._dimension_index + 1
# Exit a parse tree produced by MetricAlertConditionParser#dname.
def exitDim_name(self, ctx):
self.parameters['dimensions'][self._dimension_index]['name'] = ctx.getText().strip()
# Exit a parse tree produced by MetricAlertConditionParser#dop.
def exitDim_operator(self, ctx):
op_text = ctx.getText().strip()
self.parameters['dimensions'][self._dimension_index]['operator'] = op_text.lower()
# Exit a parse tree produced by MetricAlertConditionParser#dvalues.
def exitDim_values(self, ctx):
dvalues = ctx.getText().strip().split(' ')
self.parameters['dimensions'][self._dimension_index]['values'] = [x for x in dvalues if x not in ['', 'or']]
def result(self):
from azure.mgmt.monitor.models import MetricCriteria, MetricDimension
dim_params = self.parameters.get('dimensions', [])
dimensions = []
for dim in dim_params:
dimensions.append(MetricDimension(**dim))
self.parameters['dimensions'] = dimensions
self.parameters['name'] = '' # will be auto-populated later
return MetricCriteria(**self.parameters)

Просмотреть файл

@ -0,0 +1,10 @@
# --------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------
# pylint: disable=unused-import
from .MetricAlertConditionLexer import MetricAlertConditionLexer
from .MetricAlertConditionParser import MetricAlertConditionParser
from .MetricAlertConditionListener import MetricAlertConditionListener
from .MetricAlertConditionValidator import MetricAlertConditionValidator

Просмотреть файл

@ -0,0 +1,3 @@
echo off
echo Building MetricAlertCondition
call antlr -Dlanguage=Python2 MetricAlertCondition.g4

Просмотреть файл

@ -0,0 +1,5 @@
echo off
echo Testing MetricAlertCondition
call antlr MetricAlertCondition.g4
call javac Metric*.java
call grun MetricAlertCondition expression test.txt -gui

Просмотреть файл

@ -3,9 +3,97 @@
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------
from knack.log import get_logger
from azure.cli.command_modules.monitor.util import get_operator_map, get_aggregation_map
logger = get_logger(__name__)
def create_metric_alert(client, resource_group_name, rule_name, scopes, description, condition, disabled=False,
tags=None, actions=None, severity=2, window_size='5m', evaluation_frequency='1m',
auto_mitigate=None):
from azure.mgmt.monitor.models import MetricAlertResource, MetricAlertSingleResourceMultipleMetricCriteria
# generate names for the conditions
for i, cond in enumerate(condition):
cond.name = 'cond{}'.format(i)
kwargs = {
'description': description,
'severity': severity,
'enabled': not disabled,
'scopes': scopes,
'evaluation_frequency': evaluation_frequency,
'window_size': window_size,
'criteria': MetricAlertSingleResourceMultipleMetricCriteria(all_of=condition),
'actions': actions,
'tags': tags,
'location': 'global',
'auto_mitigate': auto_mitigate
}
return client.create_or_update(resource_group_name, rule_name, MetricAlertResource(**kwargs))
def update_metric_alert(instance, scopes=None, description=None, enabled=None, tags=None,
severity=None, window_size=None, evaluation_frequency=None, auto_mitigate=None,
add_actions=None, remove_actions=None, add_conditions=None, remove_conditions=None):
if scopes is not None:
instance.scopes = scopes
if description is not None:
instance.description = description
if enabled is not None:
instance.enabled = enabled
if tags is not None:
instance.tags = tags
if severity is not None:
instance.severity = severity
if window_size is not None:
instance.window_size = window_size
if evaluation_frequency is not None:
instance.evaluation_frequency = evaluation_frequency
if auto_mitigate is not None:
instance.auto_mitigate = auto_mitigate
# process action removals
if remove_actions is not None:
instance.actions = [x for x in instance.actions if x.action_group_id not in remove_actions]
# process action additions
if add_actions is not None:
for action in add_actions:
match = next((x for x in instance.actions if action.action_group_id == x.action_group_id), None)
if match:
match.webhook_properties = action.webhook_properties
else:
instance.actions.append(action)
# process condition removals
if remove_conditions is not None:
instance.criteria.all_of = [x for x in instance.criteria.all_of if x.name not in remove_conditions]
def _get_next_name():
i = 0
while True:
possible_name = 'cond{}'.format(i)
match = next((x for x in instance.criteria.all_of if x.name == possible_name), None)
if match:
i = i + 1
continue
return possible_name
# process condition additions
if add_conditions is not None:
for condition in add_conditions:
condition.name = _get_next_name()
instance.criteria.all_of.append(condition)
return instance
def list_metric_alerts(client, resource_group_name=None):
if resource_group_name:
return client.list_by_resource_group(resource_group_name)
return client.list_by_subscription()
def create_metric_rule(client, resource_group_name, rule_name, target, condition, description=None, disabled=False,
location=None, tags=None, email_service_owners=False, actions=None):

Просмотреть файл

@ -0,0 +1,553 @@
interactions:
- request:
body: '{"location": "westus", "tags": {"product": "azurecli", "cause": "automation",
"date": "2018-08-13T23:24:35Z"}}'
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [group create]
Connection: [keep-alive]
Content-Length: ['110']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.44]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_metric_alert_v2000001?api-version=2018-05-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001","name":"cli_test_metric_alert_v2000001","location":"westus","tags":{"product":"azurecli","cause":"automation","date":"2018-08-13T23:24:35Z"},"properties":{"provisioningState":"Succeeded"}}'}
headers:
cache-control: [no-cache]
content-length: ['384']
content-type: [application/json; charset=utf-8]
date: ['Mon, 13 Aug 2018 23:24:37 GMT']
expires: ['-1']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
status: {code: 201, message: Created}
- request:
body: '{"sku": {"name": "Standard_LRS"}, "kind": "Storage", "location": "westus",
"properties": {"supportsHttpsTrafficOnly": false, "isHnsEnabled": false}}'
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [storage account create]
Connection: [keep-alive]
Content-Length: ['148']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-storage/2.0.0rc4 Azure-SDK-For-Python AZURECLI/2.0.44]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Storage/storageAccounts/clitest000002?api-version=2018-03-01-preview
response:
body: {string: ''}
headers:
cache-control: [no-cache]
content-length: ['0']
content-type: [text/plain; charset=utf-8]
date: ['Mon, 13 Aug 2018 23:24:40 GMT']
expires: ['-1']
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus/asyncoperations/a6f57ad7-8cb0-4ac7-a520-1e16f6239531?monitor=true&api-version=2018-03-01-preview']
pragma: [no-cache]
server: ['Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0
Microsoft-HTTPAPI/2.0']
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1198']
status: {code: 202, message: Accepted}
- request:
body: null
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [storage account create]
Connection: [keep-alive]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-storage/2.0.0rc4 Azure-SDK-For-Python AZURECLI/2.0.44]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Storage/locations/westus/asyncoperations/a6f57ad7-8cb0-4ac7-a520-1e16f6239531?monitor=true&api-version=2018-03-01-preview
response:
body: {string: '{"sku":{"name":"Standard_LRS","tier":"Standard"},"kind":"Storage","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Storage/storageAccounts/clitest000002","name":"clitest000002","type":"Microsoft.Storage/storageAccounts","location":"westus","tags":{},"properties":{"isHnsEnabled":false,"networkAcls":{"bypass":"AzureServices","virtualNetworkRules":[],"ipRules":[],"defaultAction":"Allow"},"trustedDirectories":["72f988bf-86f1-41af-91ab-2d7cd011db47"],"supportsHttpsTrafficOnly":false,"encryption":{"services":{"file":{"enabled":true,"lastEnabledTime":"2018-08-13T23:24:39.9662638Z"},"blob":{"enabled":true,"lastEnabledTime":"2018-08-13T23:24:39.9662638Z"}},"keySource":"Microsoft.Storage"},"provisioningState":"Succeeded","creationTime":"2018-08-13T23:24:39.8412539Z","primaryEndpoints":{"blob":"https://clitest000002.blob.core.windows.net/","queue":"https://clitest000002.queue.core.windows.net/","table":"https://clitest000002.table.core.windows.net/","file":"https://clitest000002.file.core.windows.net/"},"primaryLocation":"westus","statusOfPrimary":"available"}}'}
headers:
cache-control: [no-cache]
content-length: ['1252']
content-type: [application/json]
date: ['Mon, 13 Aug 2018 23:24:56 GMT']
expires: ['-1']
pragma: [no-cache]
server: ['Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0
Microsoft-HTTPAPI/2.0']
strict-transport-security: [max-age=31536000; includeSubDomains]
transfer-encoding: [chunked]
vary: [Accept-Encoding]
x-content-type-options: [nosniff]
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [storage account keys list]
Connection: [keep-alive]
Content-Length: ['0']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-storage/2.0.0rc4 Azure-SDK-For-Python AZURECLI/2.0.44]
accept-language: [en-US]
method: POST
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Storage/storageAccounts/clitest000002/listKeys?api-version=2018-03-01-preview
response:
body: {string: '{"keys":[{"keyName":"key1","value":"LwGSD1u4Aot4/e+bFn0SZqDg9S/CVrc2KKPA08nrHT/3x8aW6u84Eq7Fpb3I23Nggpg6sV+a38gnYT5yiwYzKA==","permissions":"FULL"},{"keyName":"key2","value":"arxAGN/ojPcAmdPcmvTrS+TWS1208Z3vNN3cXXUvbJ8w7r7sX+trJeCVA85kFLyHZ0liqsxQq5xrLZs2utT7Lg==","permissions":"FULL"}]}'}
headers:
cache-control: [no-cache]
content-length: ['288']
content-type: [application/json]
date: ['Mon, 13 Aug 2018 23:24:57 GMT']
expires: ['-1']
pragma: [no-cache]
server: ['Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0
Microsoft-HTTPAPI/2.0']
strict-transport-security: [max-age=31536000; includeSubDomains]
transfer-encoding: [chunked]
vary: [Accept-Encoding]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
status: {code: 200, message: OK}
- request:
body: '{"location": "global", "properties": {"groupShortName": "ag1", "enabled":
true, "emailReceivers": [], "smsReceivers": [], "webhookReceivers": []}}'
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [monitor action-group create]
Connection: [keep-alive]
Content-Length: ['146']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.44]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/microsoft.insights/actionGroups/ag1?api-version=2018-03-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/microsoft.insights/actionGroups/ag1","type":"Microsoft.Insights/ActionGroups","name":"ag1","location":"Global","kind":null,"tags":null,"properties":{"groupShortName":"ag1","enabled":true,"emailReceivers":[],"smsReceivers":[],"webhookReceivers":[],"itsmReceivers":[],"azureAppPushReceivers":[],"automationRunbookReceivers":[],"voiceReceivers":[],"logicAppReceivers":[],"azureFunctionReceivers":[]},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['573']
content-type: [application/json; charset=utf-8]
date: ['Mon, 13 Aug 2018 23:24:59 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1196']
status: {code: 201, message: Created}
- request:
body: '{"location": "global", "properties": {"groupShortName": "ag2", "enabled":
true, "emailReceivers": [], "smsReceivers": [], "webhookReceivers": []}}'
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [monitor action-group create]
Connection: [keep-alive]
Content-Length: ['146']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.44]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/microsoft.insights/actionGroups/ag2?api-version=2018-03-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/microsoft.insights/actionGroups/ag2","type":"Microsoft.Insights/ActionGroups","name":"ag2","location":"Global","kind":null,"tags":null,"properties":{"groupShortName":"ag2","enabled":true,"emailReceivers":[],"smsReceivers":[],"webhookReceivers":[],"itsmReceivers":[],"azureAppPushReceivers":[],"automationRunbookReceivers":[],"voiceReceivers":[],"logicAppReceivers":[],"azureFunctionReceivers":[]},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['573']
content-type: [application/json; charset=utf-8]
date: ['Mon, 13 Aug 2018 23:25:01 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
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: 'b''b\''{"location": "global", "properties": {"description": "Test", "severity":
2, "enabled": true, "scopes": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Storage/storageAccounts/clitest000002"],
"evaluationFrequency": "PT1M", "windowSize": "PT5M", "criteria": {"odata.type":
"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria", "allOf": [{"name":
"cond0", "metricName": "transactions", "operator": "GreaterThan", "timeAggregation":
"Total", "threshold": 5.0, "dimensions": [{"name": "ResponseType", "operator":
"includes", "values": ["Success"]}, {"name": "ApiName", "operator": "includes",
"values": ["GetBlob"]}]}, {"name": "cond1", "metricName": "SuccessE2ELatency",
"operator": "GreaterThan", "timeAggregation": "Average", "threshold": 250.0,
"dimensions": [{"name": "ApiName", "operator": "includes", "values": ["GetBlob",
"PutBlob"]}]}]}, "actions": [{"actionGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/microsoft.insights/actionGroups/ag1"}]}}\'''''
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [monitor metrics alert create]
Connection: [keep-alive]
Content-Length: ['1205']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.44]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Insights/metricAlerts/alert1?api-version=2018-03-01
response:
body: {string: "{\r\n \"location\": \"global\",\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n
\ \"name\": \"alert1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Insights/metricAlerts/alert1\",\r\n
\ \"properties\": {\r\n \"description\": \"Test\",\r\n \"severity\":
2,\r\n \"enabled\": true,\r\n \"scopes\": [\r\n \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Storage/storageAccounts/clitest000002\"\r\n
\ ],\r\n \"evaluationFrequency\": \"PT1M\",\r\n \"windowSize\": \"PT5M\",\r\n
\ \"templateType\": 8,\r\n \"criteria\": {\r\n \"allOf\": [\r\n
\ {\r\n \"name\": \"cond0\",\r\n \"metricNamespace\":
\"microsoft.storage/storageaccounts\",\r\n \"metricName\": \"transactions\",\r\n
\ \"dimensions\": [\r\n {\r\n \"name\": \"ResponseType\",\r\n
\ \"operator\": \"includes\",\r\n \"values\": [\r\n
\ \"Success\"\r\n ]\r\n },\r\n {\r\n
\ \"name\": \"ApiName\",\r\n \"operator\": \"includes\",\r\n
\ \"values\": [\r\n \"GetBlob\"\r\n ]\r\n
\ }\r\n ],\r\n \"operator\": \"GreaterThan\",\r\n
\ \"threshold\": 5.0,\r\n \"timeAggregation\": \"Total\"\r\n
\ },\r\n {\r\n \"name\": \"cond1\",\r\n \"metricNamespace\":
\"microsoft.storage/storageaccounts\",\r\n \"metricName\": \"SuccessE2ELatency\",\r\n
\ \"dimensions\": [\r\n {\r\n \"name\": \"ApiName\",\r\n
\ \"operator\": \"includes\",\r\n \"values\": [\r\n
\ \"GetBlob\",\r\n \"PutBlob\"\r\n ]\r\n
\ }\r\n ],\r\n \"operator\": \"GreaterThan\",\r\n
\ \"threshold\": 250.0,\r\n \"timeAggregation\": \"Average\"\r\n
\ }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n
\ },\r\n \"actions\": [\r\n {\r\n \"actionGroupId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/microsoft.insights/actionGroups/ag1\"\r\n
\ }\r\n ]\r\n }\r\n}"}
headers:
cache-control: [no-cache]
content-length: ['2300']
content-type: [application/json; charset=utf-8]
date: ['Mon, 13 Aug 2018 23:25:05 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/10.0]
strict-transport-security: [max-age=31536000; includeSubDomains]
transfer-encoding: [chunked]
vary: [Accept-Encoding]
x-aspnet-version: [4.0.30319]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
x-powered-by: [ASP.NET]
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [monitor metrics alert update]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.44]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Insights/metricAlerts/alert1?api-version=2018-03-01
response:
body: {string: "{\r\n \"location\": \"global\",\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n
\ \"name\": \"alert1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Insights/metricAlerts/alert1\",\r\n
\ \"properties\": {\r\n \"description\": \"Test\",\r\n \"severity\":
2,\r\n \"enabled\": true,\r\n \"scopes\": [\r\n \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Storage/storageAccounts/clitest000002\"\r\n
\ ],\r\n \"evaluationFrequency\": \"PT1M\",\r\n \"windowSize\": \"PT5M\",\r\n
\ \"templateType\": 8,\r\n \"criteria\": {\r\n \"allOf\": [\r\n
\ {\r\n \"name\": \"cond0\",\r\n \"metricNamespace\":
\"microsoft.storage/storageaccounts\",\r\n \"metricName\": \"transactions\",\r\n
\ \"dimensions\": [\r\n {\r\n \"name\": \"ResponseType\",\r\n
\ \"operator\": \"includes\",\r\n \"values\": [\r\n
\ \"Success\"\r\n ]\r\n },\r\n {\r\n
\ \"name\": \"ApiName\",\r\n \"operator\": \"includes\",\r\n
\ \"values\": [\r\n \"GetBlob\"\r\n ]\r\n
\ }\r\n ],\r\n \"operator\": \"GreaterThan\",\r\n
\ \"threshold\": 5.0,\r\n \"timeAggregation\": \"Total\"\r\n
\ },\r\n {\r\n \"name\": \"cond1\",\r\n \"metricNamespace\":
\"microsoft.storage/storageaccounts\",\r\n \"metricName\": \"SuccessE2ELatency\",\r\n
\ \"dimensions\": [\r\n {\r\n \"name\": \"ApiName\",\r\n
\ \"operator\": \"includes\",\r\n \"values\": [\r\n
\ \"GetBlob\",\r\n \"PutBlob\"\r\n ]\r\n
\ }\r\n ],\r\n \"operator\": \"GreaterThan\",\r\n
\ \"threshold\": 250.0,\r\n \"timeAggregation\": \"Average\"\r\n
\ }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n
\ },\r\n \"actions\": [\r\n {\r\n \"actionGroupId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/microsoft.insights/actionGroups/ag1\"\r\n
\ }\r\n ]\r\n }\r\n}"}
headers:
cache-control: [no-cache]
content-length: ['2300']
content-type: [application/json; charset=utf-8]
date: ['Mon, 13 Aug 2018 23:25:06 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/10.0]
strict-transport-security: [max-age=31536000; includeSubDomains]
transfer-encoding: [chunked]
vary: [Accept-Encoding]
x-aspnet-version: [4.0.30319]
x-content-type-options: [nosniff]
x-powered-by: [ASP.NET]
status: {code: 200, message: OK}
- request:
body: 'b''b\''{"location": "global", "tags": {"foo": "boo"}, "properties": {"description":
"alt desc", "severity": 3, "enabled": true, "scopes": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Storage/storageAccounts/clitest000002"],
"evaluationFrequency": "PT5M", "windowSize": "PT15M", "criteria": {"odata.type":
"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria", "allOf": [{"name":
"cond1", "metricName": "SuccessE2ELatency", "metricNamespace": "microsoft.storage/storageaccounts",
"operator": "GreaterThan", "timeAggregation": "Average", "threshold": 250.0,
"dimensions": [{"name": "ApiName", "operator": "includes", "values": ["GetBlob",
"PutBlob"]}]}, {"name": "cond0", "metricName": "transactions", "operator": "LessThan",
"timeAggregation": "Total", "threshold": 100.0, "dimensions": []}]}, "autoMitigate":
true, "actions": [{"actionGroupId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/microsoft.insights/actionGroups/ag2",
"webhookProperties": {"test": "best"}}]}}\'''''
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [monitor metrics alert update]
Connection: [keep-alive]
Content-Length: ['1211']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.44]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Insights/metricAlerts/alert1?api-version=2018-03-01
response:
body: {string: "{\r\n \"location\": \"global\",\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n
\ \"name\": \"alert1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Insights/metricAlerts/alert1\",\r\n
\ \"tags\": {\r\n \"foo\": \"boo\"\r\n },\r\n \"properties\": {\r\n \"description\":
\"alt desc\",\r\n \"severity\": 3,\r\n \"enabled\": true,\r\n \"scopes\":
[\r\n \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Storage/storageAccounts/clitest000002\"\r\n
\ ],\r\n \"evaluationFrequency\": \"PT5M\",\r\n \"windowSize\": \"PT15M\",\r\n
\ \"templateType\": 8,\r\n \"criteria\": {\r\n \"allOf\": [\r\n
\ {\r\n \"name\": \"cond1\",\r\n \"metricNamespace\":
\"microsoft.storage/storageaccounts\",\r\n \"metricName\": \"SuccessE2ELatency\",\r\n
\ \"dimensions\": [\r\n {\r\n \"name\": \"ApiName\",\r\n
\ \"operator\": \"includes\",\r\n \"values\": [\r\n
\ \"GetBlob\",\r\n \"PutBlob\"\r\n ]\r\n
\ }\r\n ],\r\n \"operator\": \"GreaterThan\",\r\n
\ \"threshold\": 250.0,\r\n \"timeAggregation\": \"Average\"\r\n
\ },\r\n {\r\n \"name\": \"cond0\",\r\n \"metricNamespace\":
\"microsoft.storage/storageaccounts\",\r\n \"metricName\": \"transactions\",\r\n
\ \"dimensions\": [],\r\n \"operator\": \"LessThan\",\r\n
\ \"threshold\": 100.0,\r\n \"timeAggregation\": \"Total\"\r\n
\ }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n
\ },\r\n \"autoMitigate\": true,\r\n \"actions\": [\r\n {\r\n
\ \"actionGroupId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/microsoft.insights/actionGroups/ag2\",\r\n
\ \"webHookProperties\": {\r\n \"test\": \"best\"\r\n }\r\n
\ }\r\n ]\r\n }\r\n}"}
headers:
cache-control: [no-cache]
content-length: ['2072']
content-type: [application/json; charset=utf-8]
date: ['Mon, 13 Aug 2018 23:25:15 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/10.0]
strict-transport-security: [max-age=31536000; includeSubDomains]
transfer-encoding: [chunked]
vary: [Accept-Encoding]
x-aspnet-version: [4.0.30319]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
x-powered-by: [ASP.NET]
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [monitor metrics alert list]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.44]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Insights/metricAlerts?api-version=2018-03-01
response:
body: {string: "{\r\n \"value\": [\r\n {\r\n \"location\": \"global\",\r\n
\ \"type\": \"Microsoft.Insights/metricAlerts\",\r\n \"name\": \"alert1\",\r\n
\ \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Insights/metricAlerts/alert1\",\r\n
\ \"tags\": {\r\n \"foo\": \"boo\"\r\n },\r\n \"properties\":
{\r\n \"description\": \"alt desc\",\r\n \"severity\": 3,\r\n
\ \"enabled\": true,\r\n \"scopes\": [\r\n \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Storage/storageAccounts/clitest000002\"\r\n
\ ],\r\n \"evaluationFrequency\": \"PT5M\",\r\n \"windowSize\":
\"PT15M\",\r\n \"templateType\": 8,\r\n \"criteria\": {\r\n
\ \"allOf\": [\r\n {\r\n \"name\": \"cond1\",\r\n
\ \"metricNamespace\": \"microsoft.storage/storageaccounts\",\r\n
\ \"metricName\": \"SuccessE2ELatency\",\r\n \"dimensions\":
[\r\n {\r\n \"name\": \"ApiName\",\r\n \"operator\":
\"includes\",\r\n \"values\": [\r\n \"GetBlob\",\r\n
\ \"PutBlob\"\r\n ]\r\n }\r\n
\ ],\r\n \"operator\": \"GreaterThan\",\r\n \"threshold\":
250.0,\r\n \"timeAggregation\": \"Average\"\r\n },\r\n
\ {\r\n \"name\": \"cond0\",\r\n \"metricNamespace\":
\"microsoft.storage/storageaccounts\",\r\n \"metricName\": \"transactions\",\r\n
\ \"dimensions\": [],\r\n \"operator\": \"LessThan\",\r\n
\ \"threshold\": 100.0,\r\n \"timeAggregation\":
\"Total\"\r\n }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n
\ },\r\n \"autoMitigate\": true,\r\n \"actions\": [\r\n
\ {\r\n \"actionGroupId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/microsoft.insights/actionGroups/ag2\",\r\n
\ \"webHookProperties\": {\r\n \"test\": \"best\"\r\n
\ }\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n}"}
headers:
cache-control: [no-cache]
content-length: ['2341']
content-type: [application/json; charset=utf-8]
date: ['Mon, 13 Aug 2018 23:25:15 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/10.0]
strict-transport-security: [max-age=31536000; includeSubDomains]
transfer-encoding: [chunked]
vary: [Accept-Encoding]
x-aspnet-version: [4.0.30319]
x-content-type-options: [nosniff]
x-powered-by: [ASP.NET]
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [monitor metrics alert show]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.44]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Insights/metricAlerts/alert1?api-version=2018-03-01
response:
body: {string: "{\r\n \"location\": \"global\",\r\n \"type\": \"Microsoft.Insights/metricAlerts\",\r\n
\ \"name\": \"alert1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Insights/metricAlerts/alert1\",\r\n
\ \"tags\": {\r\n \"foo\": \"boo\"\r\n },\r\n \"properties\": {\r\n \"description\":
\"alt desc\",\r\n \"severity\": 3,\r\n \"enabled\": true,\r\n \"scopes\":
[\r\n \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Storage/storageAccounts/clitest000002\"\r\n
\ ],\r\n \"evaluationFrequency\": \"PT5M\",\r\n \"windowSize\": \"PT15M\",\r\n
\ \"templateType\": 8,\r\n \"criteria\": {\r\n \"allOf\": [\r\n
\ {\r\n \"name\": \"cond1\",\r\n \"metricNamespace\":
\"microsoft.storage/storageaccounts\",\r\n \"metricName\": \"SuccessE2ELatency\",\r\n
\ \"dimensions\": [\r\n {\r\n \"name\": \"ApiName\",\r\n
\ \"operator\": \"includes\",\r\n \"values\": [\r\n
\ \"GetBlob\",\r\n \"PutBlob\"\r\n ]\r\n
\ }\r\n ],\r\n \"operator\": \"GreaterThan\",\r\n
\ \"threshold\": 250.0,\r\n \"timeAggregation\": \"Average\"\r\n
\ },\r\n {\r\n \"name\": \"cond0\",\r\n \"metricNamespace\":
\"microsoft.storage/storageaccounts\",\r\n \"metricName\": \"transactions\",\r\n
\ \"dimensions\": [],\r\n \"operator\": \"LessThan\",\r\n
\ \"threshold\": 100.0,\r\n \"timeAggregation\": \"Total\"\r\n
\ }\r\n ],\r\n \"odata.type\": \"Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria\"\r\n
\ },\r\n \"autoMitigate\": true,\r\n \"actions\": [\r\n {\r\n
\ \"actionGroupId\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/microsoft.insights/actionGroups/ag2\",\r\n
\ \"webHookProperties\": {\r\n \"test\": \"best\"\r\n }\r\n
\ }\r\n ]\r\n }\r\n}"}
headers:
cache-control: [no-cache]
content-length: ['2072']
content-type: [application/json; charset=utf-8]
date: ['Mon, 13 Aug 2018 23:25:16 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/10.0]
strict-transport-security: [max-age=31536000; includeSubDomains]
transfer-encoding: [chunked]
vary: [Accept-Encoding]
x-aspnet-version: [4.0.30319]
x-content-type-options: [nosniff]
x-powered-by: [ASP.NET]
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [monitor metrics alert delete]
Connection: [keep-alive]
Content-Length: ['0']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.44]
accept-language: [en-US]
method: DELETE
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Insights/metricAlerts/alert1?api-version=2018-03-01
response:
body: {string: ''}
headers:
cache-control: [no-cache]
content-length: ['0']
date: ['Mon, 13 Aug 2018 23:25:22 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/10.0]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-aspnet-version: [4.0.30319]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-deletes: ['14999']
x-powered-by: [ASP.NET]
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [monitor metrics alert list]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.44]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_metric_alert_v2000001/providers/Microsoft.Insights/metricAlerts?api-version=2018-03-01
response:
body: {string: "{\r\n \"value\": []\r\n}"}
headers:
cache-control: [no-cache]
content-length: ['19']
content-type: [application/json; charset=utf-8]
date: ['Mon, 13 Aug 2018 23:25:22 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/10.0]
strict-transport-security: [max-age=31536000; includeSubDomains]
transfer-encoding: [chunked]
vary: [Accept-Encoding]
x-aspnet-version: [4.0.30319]
x-content-type-options: [nosniff]
x-powered-by: [ASP.NET]
status: {code: 200, message: OK}
- request:
body: null
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [group delete]
Connection: [keep-alive]
Content-Length: ['0']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.44]
accept-language: [en-US]
method: DELETE
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/cli_test_metric_alert_v2000001?api-version=2018-05-01
response:
body: {string: ''}
headers:
cache-control: [no-cache]
content-length: ['0']
date: ['Mon, 13 Aug 2018 23:25:23 GMT']
expires: ['-1']
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTEk6NUZURVNUOjVGTUVUUklDOjVGQUxFUlQ6NUZWMk9GRElXN0dLSEc3TlNXV3xGNjM2NTc5QzQyQ0IzOTY3LVdFU1RVUyIsImpvYkxvY2F0aW9uIjoid2VzdHVzIn0?api-version=2018-05-01']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-deletes: ['14999']
status: {code: 202, message: Accepted}
version: 1

Просмотреть файл

@ -1,26 +1,26 @@
interactions:
- request:
body: '{"location": "southcentralus", "tags": {"use": "az-test"}}'
body: '{"location": "southcentralus", "tags": {"product": "azurecli", "cause":
"automation", "date": "2018-08-14T20:56:42Z"}}'
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [group create]
Connection: [keep-alive]
Content-Length: ['58']
Content-Length: ['118']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"product":"azurecli","cause":"automation","date":"2018-08-14T20:56:42Z"},"properties":{"provisioningState":"Succeeded"}}'}
headers:
cache-control: [no-cache]
content-length: ['336']
content-length: ['392']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:42:31 GMT']
date: ['Tue, 14 Aug 2018 20:56:46 GMT']
expires: ['-1']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
@ -38,24 +38,24 @@ interactions:
Connection: [keep-alive]
Content-Length: ['155']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002?api-version=2017-04-01
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002?api-version=2018-03-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002","type":"Microsoft.Insights/ActionGroups","name":"cliactiongrouptest000002","location":"Global","kind":null,"tags":null,"properties":{"groupShortName":"cliactiongro","enabled":true,"emailReceivers":[],"smsReceivers":[],"webhookReceivers":[],"itsmReceivers":[],"azureAppPushReceivers":[],"automationRunbookReceivers":[],"voiceReceivers":[],"logicAppReceivers":[],"azureFunctionReceivers":[]},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['640']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:42:34 GMT']
date: ['Tue, 14 Aug 2018 20:56:48 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1197']
x-ms-ratelimit-remaining-subscription-writes: ['1198']
status: {code: 201, message: Created}
- request:
body: null
@ -65,18 +65,18 @@ interactions:
CommandName: [monitor action-group list]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups?api-version=2017-04-01
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups?api-version=2018-03-01
response:
body: {string: '{"value":[{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002","type":"Microsoft.Insights/ActionGroups","name":"cliactiongrouptest000002","location":"Global","kind":null,"tags":null,"properties":{"groupShortName":"cliactiongro","enabled":true,"emailReceivers":[],"smsReceivers":[],"webhookReceivers":[],"itsmReceivers":[],"azureAppPushReceivers":[],"automationRunbookReceivers":[],"voiceReceivers":[],"logicAppReceivers":[],"azureFunctionReceivers":[]},"identity":null}]}'}
headers:
cache-control: [no-cache]
content-length: ['652']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:42:34 GMT']
date: ['Tue, 14 Aug 2018 20:56:48 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -93,18 +93,18 @@ interactions:
CommandName: [monitor action-group update]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002?api-version=2017-04-01
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002?api-version=2018-03-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002","type":"Microsoft.Insights/ActionGroups","name":"cliactiongrouptest000002","location":"Global","kind":null,"tags":null,"properties":{"groupShortName":"cliactiongro","enabled":true,"emailReceivers":[],"smsReceivers":[],"webhookReceivers":[],"itsmReceivers":[],"azureAppPushReceivers":[],"automationRunbookReceivers":[],"voiceReceivers":[],"logicAppReceivers":[],"azureFunctionReceivers":[]},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['640']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:42:35 GMT']
date: ['Tue, 14 Aug 2018 20:56:49 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -117,26 +117,27 @@ interactions:
body: '{"location": "Global", "tags": {"owner": "alice"}, "properties": {"groupShortName":
"new_name", "enabled": true, "emailReceivers": [], "smsReceivers": [], "webhookReceivers":
[], "itsmReceivers": [], "azureAppPushReceivers": [], "automationRunbookReceivers":
[], "voiceReceivers": [], "logicAppReceivers": [], "azureFunctionReceivers":
[]}}'
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [monitor action-group update]
Connection: [keep-alive]
Content-Length: ['263']
Content-Length: ['340']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002?api-version=2017-04-01
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002?api-version=2018-03-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002","type":"Microsoft.Insights/ActionGroups","name":"cliactiongrouptest000002","location":"Global","kind":null,"tags":{"owner":"alice"},"properties":{"groupShortName":"new_name","enabled":true,"emailReceivers":[],"smsReceivers":[],"webhookReceivers":[],"itsmReceivers":[],"azureAppPushReceivers":[],"automationRunbookReceivers":[],"voiceReceivers":[],"logicAppReceivers":[],"azureFunctionReceivers":[]},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['649']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:42:36 GMT']
date: ['Tue, 14 Aug 2018 20:56:50 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -144,7 +145,7 @@ interactions:
transfer-encoding: [chunked]
vary: [Accept-Encoding]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
x-ms-ratelimit-remaining-subscription-writes: ['1198']
status: {code: 200, message: OK}
- request:
body: null
@ -154,18 +155,18 @@ interactions:
CommandName: [monitor action-group update]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002?api-version=2017-04-01
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002?api-version=2018-03-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002","type":"Microsoft.Insights/ActionGroups","name":"cliactiongrouptest000002","location":"Global","kind":null,"tags":{"owner":"alice"},"properties":{"groupShortName":"new_name","enabled":true,"emailReceivers":[],"smsReceivers":[],"webhookReceivers":[],"itsmReceivers":[],"azureAppPushReceivers":[],"automationRunbookReceivers":[],"voiceReceivers":[],"logicAppReceivers":[],"azureFunctionReceivers":[]},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['649']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:42:37 GMT']
date: ['Tue, 14 Aug 2018 20:56:51 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -180,26 +181,27 @@ interactions:
"alice@example.com"}], "smsReceivers": [{"name": "alice_sms", "countryCode":
"1", "phoneNumber": "5551234567"}], "webhookReceivers": [{"name": "alice_web",
"serviceUri": "https://www.example.com/alert?name=alice"}], "itsmReceivers":
[], "azureAppPushReceivers": [], "automationRunbookReceivers": []}}'
[], "azureAppPushReceivers": [], "automationRunbookReceivers": [], "voiceReceivers":
[], "logicAppReceivers": [], "azureFunctionReceivers": []}}'
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [monitor action-group update]
Connection: [keep-alive]
Content-Length: ['466']
Content-Length: ['543']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002?api-version=2017-04-01
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002?api-version=2018-03-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002","type":"Microsoft.Insights/ActionGroups","name":"cliactiongrouptest000002","location":"Global","kind":null,"tags":{"owner":"alice"},"properties":{"groupShortName":"new_name","enabled":true,"emailReceivers":[{"name":"alice","emailAddress":"alice@example.com","status":"Enabled"}],"smsReceivers":[{"name":"alice_sms","countryCode":"1","phoneNumber":"5551234567","status":"Enabled"}],"webhookReceivers":[{"name":"alice_web","serviceUri":"https://www.example.com/alert?name=alice"}],"itsmReceivers":[],"azureAppPushReceivers":[],"automationRunbookReceivers":[],"voiceReceivers":[],"logicAppReceivers":[],"azureFunctionReceivers":[]},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['879']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:42:38 GMT']
date: ['Tue, 14 Aug 2018 20:56:52 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -217,18 +219,18 @@ interactions:
CommandName: [monitor action-group update]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002?api-version=2017-04-01
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002?api-version=2018-03-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002","type":"Microsoft.Insights/ActionGroups","name":"cliactiongrouptest000002","location":"Global","kind":null,"tags":{"owner":"alice"},"properties":{"groupShortName":"new_name","enabled":true,"emailReceivers":[{"name":"alice","emailAddress":"alice@example.com","status":"Enabled"}],"smsReceivers":[{"name":"alice_sms","countryCode":"1","phoneNumber":"5551234567","status":"Enabled"}],"webhookReceivers":[{"name":"alice_web","serviceUri":"https://www.example.com/alert?name=alice"}],"itsmReceivers":[],"azureAppPushReceivers":[],"automationRunbookReceivers":[],"voiceReceivers":[],"logicAppReceivers":[],"azureFunctionReceivers":[]},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['879']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:42:39 GMT']
date: ['Tue, 14 Aug 2018 20:56:53 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -242,26 +244,27 @@ interactions:
"new_name", "enabled": true, "emailReceivers": [{"name": "alice", "emailAddress":
"alice@example.com"}], "smsReceivers": [{"name": "alice_sms", "countryCode":
"1", "phoneNumber": "5551234567"}], "webhookReceivers": [], "itsmReceivers":
[], "azureAppPushReceivers": [], "automationRunbookReceivers": []}}'
[], "azureAppPushReceivers": [], "automationRunbookReceivers": [], "voiceReceivers":
[], "logicAppReceivers": [], "azureFunctionReceivers": []}}'
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [monitor action-group update]
Connection: [keep-alive]
Content-Length: ['387']
Content-Length: ['464']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002?api-version=2017-04-01
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002?api-version=2018-03-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002","type":"Microsoft.Insights/ActionGroups","name":"cliactiongrouptest000002","location":"Global","kind":null,"tags":{"owner":"alice"},"properties":{"groupShortName":"new_name","enabled":true,"emailReceivers":[{"name":"alice","emailAddress":"alice@example.com","status":"Enabled"}],"smsReceivers":[{"name":"alice_sms","countryCode":"1","phoneNumber":"5551234567","status":"Enabled"}],"webhookReceivers":[],"itsmReceivers":[],"azureAppPushReceivers":[],"automationRunbookReceivers":[],"voiceReceivers":[],"logicAppReceivers":[],"azureFunctionReceivers":[]},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['803']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:42:40 GMT']
date: ['Tue, 14 Aug 2018 20:56:54 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -280,18 +283,18 @@ interactions:
Connection: [keep-alive]
Content-Length: ['28']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: POST
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002/subscribe?api-version=2017-04-01
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002/subscribe?api-version=2018-03-01
response:
body: {string: '{"Code":"ReceiverNotFound","Message":null}'}
headers:
cache-control: [no-cache]
content-length: ['42']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:42:41 GMT']
date: ['Tue, 14 Aug 2018 20:56:54 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -308,24 +311,24 @@ interactions:
Connection: [keep-alive]
Content-Length: ['25']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: POST
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002/subscribe?api-version=2017-04-01
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002/subscribe?api-version=2018-03-01
response:
body: {string: '{"Code":"ReceiverAlreadyEnabled","Message":null}'}
headers:
cache-control: [no-cache]
content-length: ['48']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:42:41 GMT']
date: ['Tue, 14 Aug 2018 20:56:55 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1189']
x-ms-ratelimit-remaining-subscription-writes: ['1198']
status: {code: 409, message: Conflict}
- request:
body: null
@ -336,23 +339,23 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: DELETE
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002?api-version=2017-04-01
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliactiongrouptest000002?api-version=2018-03-01
response:
body: {string: ''}
headers:
cache-control: [no-cache]
content-length: ['0']
date: ['Thu, 15 Mar 2018 16:42:43 GMT']
date: ['Tue, 14 Aug 2018 20:56:57 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
x-ms-ratelimit-remaining-subscription-deletes: ['14999']
status: {code: 200, message: OK}
- request:
body: null
@ -362,18 +365,18 @@ interactions:
CommandName: [monitor action-group list]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups?api-version=2017-04-01
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups?api-version=2018-03-01
response:
body: {string: '{"value":[]}'}
headers:
cache-control: [no-cache]
content-length: ['12']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:42:43 GMT']
date: ['Tue, 14 Aug 2018 20:56:58 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -391,9 +394,8 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: DELETE
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01
@ -402,12 +404,12 @@ interactions:
headers:
cache-control: [no-cache]
content-length: ['0']
date: ['Thu, 15 Mar 2018 16:42:45 GMT']
date: ['Tue, 14 Aug 2018 20:56:58 GMT']
expires: ['-1']
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdRTzVUWUFSQkdGVlJUVlBISlFNN1dFNzZEU0hRNk9TNTNXNHw2MDUzNEUyNjVDNURDOEZGLVNPVVRIQ0VOVFJBTFVTIiwiam9iTG9jYXRpb24iOiJzb3V0aGNlbnRyYWx1cyJ9?api-version=2018-05-01']
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdXVUEyUzc3Uk5WMlZXRTZETDZaVDVIVVRNVVFDVTY2WTJPR3xCQ0IwNjc2RTE1RThFOTlBLVNPVVRIQ0VOVFJBTFVTIiwiam9iTG9jYXRpb24iOiJzb3V0aGNlbnRyYWx1cyJ9?api-version=2018-05-01']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
x-ms-ratelimit-remaining-subscription-deletes: ['14999']
status: {code: 202, message: Accepted}
version: 1

Просмотреть файл

@ -1,31 +1,31 @@
interactions:
- request:
body: '{"location": "southcentralus", "tags": {"use": "az-test"}}'
body: '{"location": "southcentralus", "tags": {"product": "azurecli", "cause":
"automation", "date": "2018-08-15T00:26:11Z"}}'
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [group create]
Connection: [keep-alive]
Content-Length: ['58']
Content-Length: ['118']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"product":"azurecli","cause":"automation","date":"2018-08-15T00:26:11Z"},"properties":{"provisioningState":"Succeeded"}}'}
headers:
cache-control: [no-cache]
content-length: ['336']
content-length: ['392']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:05 GMT']
date: ['Wed, 15 Aug 2018 00:26:12 GMT']
expires: ['-1']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
x-ms-ratelimit-remaining-subscription-writes: ['1198']
status: {code: 201, message: Created}
- request:
body: null
@ -35,19 +35,18 @@ interactions:
CommandName: [group show]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"product":"azurecli","cause":"automation","date":"2018-08-15T00:26:11Z"},"properties":{"provisioningState":"Succeeded"}}'}
headers:
cache-control: [no-cache]
content-length: ['336']
content-length: ['392']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:04 GMT']
date: ['Wed, 15 Aug 2018 00:26:13 GMT']
expires: ['-1']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
@ -62,8 +61,8 @@ interactions:
CommandName: [monitor activity-log alert create]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -74,7 +73,7 @@ interactions:
cache-control: [no-cache]
content-length: ['248']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:06 GMT']
date: ['Wed, 15 Aug 2018 00:26:13 GMT']
expires: ['-1']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
@ -92,8 +91,8 @@ interactions:
Connection: [keep-alive]
Content-Length: ['322']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -103,13 +102,13 @@ interactions:
cache-control: [no-cache]
content-length: ['701']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:07 GMT']
date: ['Wed, 15 Aug 2018 00:26:15 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1197']
x-ms-ratelimit-remaining-subscription-writes: ['1199']
status: {code: 201, message: Created}
- request:
body: null
@ -119,8 +118,8 @@ interactions:
CommandName: [monitor activity-log alert show]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -130,7 +129,7 @@ interactions:
cache-control: [no-cache]
content-length: ['701']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:13 GMT']
date: ['Wed, 15 Aug 2018 00:26:22 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -147,8 +146,8 @@ interactions:
CommandName: [monitor activity-log alert update]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -158,7 +157,7 @@ interactions:
cache-control: [no-cache]
content-length: ['701']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:14 GMT']
date: ['Wed, 15 Aug 2018 00:26:22 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -179,8 +178,8 @@ interactions:
Connection: [keep-alive]
Content-Length: ['376']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -190,7 +189,7 @@ interactions:
cache-control: [no-cache]
content-length: ['758']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:15 GMT']
date: ['Wed, 15 Aug 2018 00:26:23 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -208,8 +207,8 @@ interactions:
CommandName: [monitor activity-log alert update]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -219,7 +218,7 @@ interactions:
cache-control: [no-cache]
content-length: ['758']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:14 GMT']
date: ['Wed, 15 Aug 2018 00:26:24 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -240,8 +239,8 @@ interactions:
Connection: [keep-alive]
Content-Length: ['485']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -251,7 +250,7 @@ interactions:
cache-control: [no-cache]
content-length: ['882']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:16 GMT']
date: ['Wed, 15 Aug 2018 00:26:24 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -259,7 +258,7 @@ interactions:
transfer-encoding: [chunked]
vary: ['Accept-Encoding,Accept-Encoding']
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1197']
x-ms-ratelimit-remaining-subscription-writes: ['1198']
status: {code: 200, message: OK}
- request:
body: null
@ -270,9 +269,8 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: DELETE
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01
@ -281,12 +279,12 @@ interactions:
headers:
cache-control: [no-cache]
content-length: ['0']
date: ['Thu, 15 Mar 2018 16:43:17 GMT']
date: ['Wed, 15 Aug 2018 00:26:26 GMT']
expires: ['-1']
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdQNFkyWlBSQkFKUDNQNEtXVkdLWkZEREtVWDJRUFRSS1REMnxDMDM3OUE5QjUyNzdCMDc2LVNPVVRIQ0VOVFJBTFVTIiwiam9iTG9jYXRpb24iOiJzb3V0aGNlbnRyYWx1cyJ9?api-version=2018-05-01']
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdVVUhCWEVONkhZNzVETjNSSk9UUlVKT1REV0xLU0JFNVZRMnxBOUYzMjk1OEZDMDk5NTNBLVNPVVRIQ0VOVFJBTFVTIiwiam9iTG9jYXRpb24iOiJzb3V0aGNlbnRyYWx1cyJ9?api-version=2018-05-01']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
x-ms-ratelimit-remaining-subscription-deletes: ['14999']
status: {code: 202, message: Accepted}
version: 1

Просмотреть файл

@ -1,26 +1,26 @@
interactions:
- request:
body: '{"location": "southcentralus", "tags": {"use": "az-test"}}'
body: '{"location": "southcentralus", "tags": {"product": "azurecli", "cause":
"automation", "date": "2018-08-15T00:26:26Z"}}'
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [group create]
Connection: [keep-alive]
Content-Length: ['58']
Content-Length: ['118']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"product":"azurecli","cause":"automation","date":"2018-08-15T00:26:26Z"},"properties":{"provisioningState":"Succeeded"}}'}
headers:
cache-control: [no-cache]
content-length: ['336']
content-length: ['392']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:19 GMT']
date: ['Wed, 15 Aug 2018 00:26:28 GMT']
expires: ['-1']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
@ -35,19 +35,18 @@ interactions:
CommandName: [group show]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"product":"azurecli","cause":"automation","date":"2018-08-15T00:26:26Z"},"properties":{"provisioningState":"Succeeded"}}'}
headers:
cache-control: [no-cache]
content-length: ['336']
content-length: ['392']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:19 GMT']
date: ['Wed, 15 Aug 2018 00:26:28 GMT']
expires: ['-1']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
@ -62,8 +61,8 @@ interactions:
CommandName: [monitor activity-log alert create]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -74,7 +73,7 @@ interactions:
cache-control: [no-cache]
content-length: ['248']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:19 GMT']
date: ['Wed, 15 Aug 2018 00:26:28 GMT']
expires: ['-1']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
@ -92,8 +91,8 @@ interactions:
Connection: [keep-alive]
Content-Length: ['322']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -103,13 +102,13 @@ interactions:
cache-control: [no-cache]
content-length: ['701']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:20 GMT']
date: ['Wed, 15 Aug 2018 00:26:30 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1198']
x-ms-ratelimit-remaining-subscription-writes: ['1197']
status: {code: 201, message: Created}
- request:
body: null
@ -119,8 +118,8 @@ interactions:
CommandName: [monitor activity-log alert show]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -130,7 +129,7 @@ interactions:
cache-control: [no-cache]
content-length: ['701']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:27 GMT']
date: ['Wed, 15 Aug 2018 00:26:36 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -147,8 +146,8 @@ interactions:
CommandName: [monitor activity-log alert scope add]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -158,7 +157,7 @@ interactions:
cache-control: [no-cache]
content-length: ['701']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:27 GMT']
date: ['Wed, 15 Aug 2018 00:26:37 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -168,8 +167,8 @@ interactions:
x-content-type-options: [nosniff]
status: {code: 200, message: OK}
- request:
body: 'b''{"location": "Global", "tags": {}, "properties": {"scopes": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdlo"],
body: 'b''{"location": "Global", "tags": {}, "properties": {"scopes": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpnv",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001"],
"enabled": true, "condition": {"allOf": [{"field": "category", "equals": "ServiceHealth"}]},
"actions": {"actionGroups": []}}}'''
headers:
@ -179,18 +178,18 @@ interactions:
Connection: [keep-alive]
Content-Length: ['479']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdlo"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpnv","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['845']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:29 GMT']
date: ['Wed, 15 Aug 2018 00:26:37 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -208,18 +207,18 @@ interactions:
CommandName: [monitor activity-log alert scope add]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdlo"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpnv","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['845']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:29 GMT']
date: ['Wed, 15 Aug 2018 00:26:37 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -229,9 +228,9 @@ interactions:
x-content-type-options: [nosniff]
status: {code: 200, message: OK}
- request:
body: 'b''{"location": "Global", "tags": {}, "properties": {"scopes": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdlo",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdl"],
body: 'b''{"location": "Global", "tags": {}, "properties": {"scopes": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpnv",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpn"],
"enabled": true, "condition": {"allOf": [{"field": "category", "equals": "ServiceHealth"}]},
"actions": {"actionGroups": []}}}'''
headers:
@ -241,18 +240,18 @@ interactions:
Connection: [keep-alive]
Content-Length: ['623']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdlo","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdl"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpnv","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpn"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['988']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:29 GMT']
date: ['Wed, 15 Aug 2018 00:26:37 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -260,7 +259,7 @@ interactions:
transfer-encoding: [chunked]
vary: ['Accept-Encoding,Accept-Encoding']
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
x-ms-ratelimit-remaining-subscription-writes: ['1197']
status: {code: 200, message: OK}
- request:
body: null
@ -270,18 +269,18 @@ interactions:
CommandName: [monitor activity-log alert scope add]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdlo","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdl"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpnv","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpn"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['988']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:29 GMT']
date: ['Wed, 15 Aug 2018 00:26:38 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -291,7 +290,7 @@ interactions:
x-content-type-options: [nosniff]
status: {code: 200, message: OK}
- request:
body: '{"location": "Global", "tags": {}, "properties": {"scopes": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdl"],
body: '{"location": "Global", "tags": {}, "properties": {"scopes": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpn"],
"enabled": true, "condition": {"allOf": [{"field": "category", "equals": "ServiceHealth"}]},
"actions": {"actionGroups": []}}}'
headers:
@ -301,18 +300,18 @@ interactions:
Connection: [keep-alive]
Content-Length: ['332']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdl"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpn"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['699']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:29 GMT']
date: ['Wed, 15 Aug 2018 00:26:39 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -320,7 +319,7 @@ interactions:
transfer-encoding: [chunked]
vary: ['Accept-Encoding,Accept-Encoding']
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1197']
x-ms-ratelimit-remaining-subscription-writes: ['1199']
status: {code: 200, message: OK}
- request:
body: null
@ -330,18 +329,18 @@ interactions:
CommandName: [monitor activity-log alert scope add]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdl"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpn"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['699']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:30 GMT']
date: ['Wed, 15 Aug 2018 00:26:39 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -351,9 +350,9 @@ interactions:
x-content-type-options: [nosniff]
status: {code: 200, message: OK}
- request:
body: 'b''{"location": "Global", "tags": {}, "properties": {"scopes": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdlo",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdl"],
body: 'b''{"location": "Global", "tags": {}, "properties": {"scopes": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpnv",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpn"],
"enabled": true, "condition": {"allOf": [{"field": "category", "equals": "ServiceHealth"}]},
"actions": {"actionGroups": []}}}'''
headers:
@ -363,18 +362,18 @@ interactions:
Connection: [keep-alive]
Content-Length: ['623']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdlo","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdl"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpnv","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpn"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['988']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:32 GMT']
date: ['Wed, 15 Aug 2018 00:26:39 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -382,7 +381,7 @@ interactions:
transfer-encoding: [chunked]
vary: ['Accept-Encoding,Accept-Encoding']
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
x-ms-ratelimit-remaining-subscription-writes: ['1196']
status: {code: 200, message: OK}
- request:
body: null
@ -392,18 +391,18 @@ interactions:
CommandName: [monitor activity-log alert scope remove]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdlo","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdl"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpnv","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpn"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['988']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:32 GMT']
date: ['Wed, 15 Aug 2018 00:26:40 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -413,8 +412,8 @@ interactions:
x-content-type-options: [nosniff]
status: {code: 200, message: OK}
- request:
body: '{"location": "Global", "tags": {}, "properties": {"scopes": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdlo",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdl"],
body: '{"location": "Global", "tags": {}, "properties": {"scopes": ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpnv",
"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpn"],
"enabled": true, "condition": {"allOf": [{"field": "category", "equals": "ServiceHealth"}]},
"actions": {"actionGroups": []}}}'
headers:
@ -424,18 +423,18 @@ interactions:
Connection: [keep-alive]
Content-Length: ['477']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdlo","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rggxz5k7km4noy7ul4grh55eqr4ypja3rzenavcg6d65g6mjm5bbp2vmjr6ashmdl"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002","type":"Microsoft.Insights/ActivityLogAlerts","name":"clialert000002","location":"Global","kind":null,"tags":{},"properties":{"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpnv","/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rgfvt7isgkbrf6gqvjl6mor7z4agev5lxtcso6736oivotpqnwf6ziuuhdvp4dlpn"],"condition":{"allOf":[{"field":"category","equals":"ServiceHealth","containsAny":null}]},"actions":{"actionGroups":[]},"enabled":true,"description":null},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['843']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:33 GMT']
date: ['Wed, 15 Aug 2018 00:26:40 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -443,7 +442,7 @@ interactions:
transfer-encoding: [chunked]
vary: ['Accept-Encoding,Accept-Encoding']
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
x-ms-ratelimit-remaining-subscription-writes: ['1198']
status: {code: 200, message: OK}
- request:
body: null
@ -454,9 +453,8 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: DELETE
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01
@ -465,12 +463,12 @@ interactions:
headers:
cache-control: [no-cache]
content-length: ['0']
date: ['Thu, 15 Mar 2018 16:43:33 GMT']
date: ['Wed, 15 Aug 2018 00:26:41 GMT']
expires: ['-1']
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdHWFo1SzdLTTROT1k3VUw0R1JINTVFUVI0WVBKQTNSWkVOQXw1NkEwMTJDNTNGRjQ3M0FFLVNPVVRIQ0VOVFJBTFVTIiwiam9iTG9jYXRpb24iOiJzb3V0aGNlbnRyYWx1cyJ9?api-version=2018-05-01']
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdGVlQ3SVNHS0JSRjZHUVZKTDZNT1I3WjRBR0VWNUxYVENTT3xBRjQ1Q0VDMERCQzhFNzI5LVNPVVRIQ0VOVFJBTFVTIiwiam9iTG9jYXRpb24iOiJzb3V0aGNlbnRyYWx1cyJ9?api-version=2018-05-01']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1198']
x-ms-ratelimit-remaining-subscription-deletes: ['14999']
status: {code: 202, message: Accepted}
version: 1

Просмотреть файл

@ -1,26 +1,26 @@
interactions:
- request:
body: '{"location": "southcentralus", "tags": {"use": "az-test"}}'
body: '{"location": "southcentralus", "tags": {"product": "azurecli", "cause":
"automation", "date": "2018-08-15T00:26:42Z"}}'
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [group create]
Connection: [keep-alive]
Content-Length: ['58']
Content-Length: ['118']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"product":"azurecli","cause":"automation","date":"2018-08-15T00:26:42Z"},"properties":{"provisioningState":"Succeeded"}}'}
headers:
cache-control: [no-cache]
content-length: ['336']
content-length: ['392']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:35 GMT']
date: ['Wed, 15 Aug 2018 00:26:43 GMT']
expires: ['-1']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
@ -35,19 +35,18 @@ interactions:
CommandName: [group show]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"product":"azurecli","cause":"automation","date":"2018-08-15T00:26:42Z"},"properties":{"provisioningState":"Succeeded"}}'}
headers:
cache-control: [no-cache]
content-length: ['336']
content-length: ['392']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:35 GMT']
date: ['Wed, 15 Aug 2018 00:26:44 GMT']
expires: ['-1']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
@ -62,8 +61,8 @@ interactions:
CommandName: [monitor activity-log alert create]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -74,7 +73,7 @@ interactions:
cache-control: [no-cache]
content-length: ['248']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:36 GMT']
date: ['Wed, 15 Aug 2018 00:26:44 GMT']
expires: ['-1']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
@ -92,8 +91,8 @@ interactions:
Connection: [keep-alive]
Content-Length: ['322']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -103,13 +102,13 @@ interactions:
cache-control: [no-cache]
content-length: ['701']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:38 GMT']
date: ['Wed, 15 Aug 2018 00:26:46 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1179']
x-ms-ratelimit-remaining-subscription-writes: ['1198']
status: {code: 201, message: Created}
- request:
body: null
@ -119,8 +118,8 @@ interactions:
CommandName: [monitor activity-log alert show]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -130,7 +129,7 @@ interactions:
cache-control: [no-cache]
content-length: ['701']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:43 GMT']
date: ['Wed, 15 Aug 2018 00:26:53 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -147,8 +146,8 @@ interactions:
CommandName: [monitor activity-log alert create]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -158,7 +157,7 @@ interactions:
cache-control: [no-cache]
content-length: ['701']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:44 GMT']
date: ['Wed, 15 Aug 2018 00:26:53 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -176,9 +175,8 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: DELETE
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01
@ -187,12 +185,12 @@ interactions:
headers:
cache-control: [no-cache]
content-length: ['0']
date: ['Thu, 15 Mar 2018 16:43:45 GMT']
date: ['Wed, 15 Aug 2018 00:26:53 GMT']
expires: ['-1']
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdGM01TQlRZT0VCVFlIQTZWRkpBSURLREhGTFRTVENRRjNSRHxCOTUwNzEzMTBBMUI1QTJCLVNPVVRIQ0VOVFJBTFVTIiwiam9iTG9jYXRpb24iOiJzb3V0aGNlbnRyYWx1cyJ9?api-version=2018-05-01']
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdVQTRZUVA2Rkc3TVpFNVBSSERQT09GNExLV1pVUk9RVEJCNXwwNjBGQTRERjc5Rjk0QkVCLVNPVVRIQ0VOVFJBTFVTIiwiam9iTG9jYXRpb24iOiJzb3V0aGNlbnRyYWx1cyJ9?api-version=2018-05-01']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1197']
x-ms-ratelimit-remaining-subscription-deletes: ['14998']
status: {code: 202, message: Accepted}
version: 1

Просмотреть файл

@ -1,26 +1,26 @@
interactions:
- request:
body: '{"location": "southcentralus", "tags": {"use": "az-test"}}'
body: '{"location": "southcentralus", "tags": {"product": "azurecli", "cause":
"automation", "date": "2018-08-15T00:26:54Z"}}'
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [group create]
Connection: [keep-alive]
Content-Length: ['58']
Content-Length: ['118']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"product":"azurecli","cause":"automation","date":"2018-08-15T00:26:54Z"},"properties":{"provisioningState":"Succeeded"}}'}
headers:
cache-control: [no-cache]
content-length: ['336']
content-length: ['392']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:47 GMT']
date: ['Wed, 15 Aug 2018 00:26:55 GMT']
expires: ['-1']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
@ -35,8 +35,8 @@ interactions:
CommandName: [monitor activity-log alert create]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -47,7 +47,7 @@ interactions:
cache-control: [no-cache]
content-length: ['248']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:47 GMT']
date: ['Wed, 15 Aug 2018 00:26:56 GMT']
expires: ['-1']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
@ -65,8 +65,8 @@ interactions:
Connection: [keep-alive]
Content-Length: ['323']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000002?api-version=2017-04-01
@ -76,13 +76,13 @@ interactions:
cache-control: [no-cache]
content-length: ['702']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:50 GMT']
date: ['Wed, 15 Aug 2018 00:26:57 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1198']
x-ms-ratelimit-remaining-subscription-writes: ['1199']
status: {code: 201, message: Created}
- request:
body: null
@ -93,9 +93,8 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: DELETE
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01
@ -104,12 +103,12 @@ interactions:
headers:
cache-control: [no-cache]
content-length: ['0']
date: ['Thu, 15 Mar 2018 16:43:51 GMT']
date: ['Wed, 15 Aug 2018 00:26:59 GMT']
expires: ['-1']
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdLTzRIR1FCMzVLWlVaSkhQSlJPNlVHVTZJNkpHNFRNVkpDTXxFRUExN0YxQzc4MkMwNUE5LVNPVVRIQ0VOVFJBTFVTIiwiam9iTG9jYXRpb24iOiJzb3V0aGNlbnRyYWx1cyJ9?api-version=2018-05-01']
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdPNVJRUDZSVFRQUVhVV0tWR1VPN0pPRjQ3WFVQSU9CM0tWV3w4OUM3REQwRENFRTY1OTk3LVNPVVRIQ0VOVFJBTFVTIiwiam9iTG9jYXRpb24iOiJzb3V0aGNlbnRyYWx1cyJ9?api-version=2018-05-01']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1199']
x-ms-ratelimit-remaining-subscription-deletes: ['14998']
status: {code: 202, message: Accepted}
version: 1

Просмотреть файл

@ -1,31 +1,31 @@
interactions:
- request:
body: '{"location": "southcentralus", "tags": {"use": "az-test"}}'
body: '{"location": "southcentralus", "tags": {"product": "azurecli", "cause":
"automation", "date": "2018-08-15T00:26:59Z"}}'
headers:
Accept: [application/json]
Accept-Encoding: ['gzip, deflate']
CommandName: [group create]
Connection: [keep-alive]
Content-Length: ['58']
Content-Length: ['118']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"product":"azurecli","cause":"automation","date":"2018-08-15T00:26:59Z"},"properties":{"provisioningState":"Succeeded"}}'}
headers:
cache-control: [no-cache]
content-length: ['336']
content-length: ['392']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:53 GMT']
date: ['Wed, 15 Aug 2018 00:27:01 GMT']
expires: ['-1']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1189']
x-ms-ratelimit-remaining-subscription-writes: ['1199']
status: {code: 201, message: Created}
- request:
body: null
@ -35,19 +35,18 @@ interactions:
CommandName: [group show]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"use":"az-test"},"properties":{"provisioningState":"Succeeded"}}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001","name":"clitest.rg000001","location":"southcentralus","tags":{"product":"azurecli","cause":"automation","date":"2018-08-15T00:26:59Z"},"properties":{"provisioningState":"Succeeded"}}'}
headers:
cache-control: [no-cache]
content-length: ['336']
content-length: ['392']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:54 GMT']
date: ['Wed, 15 Aug 2018 00:27:01 GMT']
expires: ['-1']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
@ -55,7 +54,7 @@ interactions:
x-content-type-options: [nosniff]
status: {code: 200, message: OK}
- request:
body: '{"location": "global", "properties": {"groupShortName": "cliactnviawe",
body: '{"location": "global", "properties": {"groupShortName": "cliactgssprq",
"enabled": true, "emailReceivers": [], "smsReceivers": [], "webhookReceivers":
[]}}'
headers:
@ -65,18 +64,18 @@ interactions:
Connection: [keep-alive]
Content-Length: ['155']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliact000002?api-version=2017-04-01
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliact000002?api-version=2018-03-01
response:
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliact000002","type":"Microsoft.Insights/ActionGroups","name":"cliact000002","location":"Global","kind":null,"tags":null,"properties":{"groupShortName":"cliactnviawe","enabled":true,"emailReceivers":[],"smsReceivers":[],"webhookReceivers":[],"itsmReceivers":[],"azureAppPushReceivers":[],"automationRunbookReceivers":[],"voiceReceivers":[],"logicAppReceivers":[],"azureFunctionReceivers":[]},"identity":null}'}
body: {string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/actionGroups/cliact000002","type":"Microsoft.Insights/ActionGroups","name":"cliact000002","location":"Global","kind":null,"tags":null,"properties":{"groupShortName":"cliactgssprq","enabled":true,"emailReceivers":[],"smsReceivers":[],"webhookReceivers":[],"itsmReceivers":[],"azureAppPushReceivers":[],"automationRunbookReceivers":[],"voiceReceivers":[],"logicAppReceivers":[],"azureFunctionReceivers":[]},"identity":null}'}
headers:
cache-control: [no-cache]
content-length: ['640']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:55 GMT']
date: ['Wed, 15 Aug 2018 00:27:03 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
@ -92,8 +91,8 @@ interactions:
CommandName: [monitor activity-log alert create]
Connection: [keep-alive]
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: GET
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000003?api-version=2017-04-01
@ -104,7 +103,7 @@ interactions:
cache-control: [no-cache]
content-length: ['248']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:56 GMT']
date: ['Wed, 15 Aug 2018 00:27:03 GMT']
expires: ['-1']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
@ -123,8 +122,8 @@ interactions:
Connection: [keep-alive]
Content-Length: ['595']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 azure-mgmt-monitor/0.5.0 Azure-SDK-For-Python AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 azure-mgmt-monitor/0.5.2 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: PUT
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/microsoft.insights/activityLogAlerts/clialert000003?api-version=2017-04-01
@ -134,13 +133,13 @@ interactions:
cache-control: [no-cache]
content-length: ['1013']
content-type: [application/json; charset=utf-8]
date: ['Thu, 15 Mar 2018 16:43:57 GMT']
date: ['Wed, 15 Aug 2018 00:27:04 GMT']
expires: ['-1']
pragma: [no-cache]
server: [Microsoft-IIS/8.5]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1198']
x-ms-ratelimit-remaining-subscription-writes: ['1197']
status: {code: 201, message: Created}
- request:
body: null
@ -151,9 +150,8 @@ interactions:
Connection: [keep-alive]
Content-Length: ['0']
Content-Type: [application/json; charset=utf-8]
User-Agent: [python/3.6.1 (Windows-10-10.0.16299-SP0) requests/2.18.4 msrest/0.4.27
msrest_azure/0.4.22 resourcemanagementclient/1.2.1 Azure-SDK-For-Python
AZURECLI/2.0.30]
User-Agent: [python/3.6.1 (Windows-10-10.0.17134-SP0) requests/2.19.1 msrest/0.5.4
msrest_azure/0.5.0 resourcemanagementclient/2.0.0 Azure-SDK-For-Python AZURECLI/2.0.45]
accept-language: [en-US]
method: DELETE
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/clitest.rg000001?api-version=2018-05-01
@ -162,12 +160,12 @@ interactions:
headers:
cache-control: [no-cache]
content-length: ['0']
date: ['Thu, 15 Mar 2018 16:43:59 GMT']
date: ['Wed, 15 Aug 2018 00:27:05 GMT']
expires: ['-1']
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdUV1hESVpYU0s1VjVJWEgyM1pPNFo2TzVSTjNPVTJGUUk1SHxDRDBBMDQyMjlBMjBENDExLVNPVVRIQ0VOVFJBTFVTIiwiam9iTG9jYXRpb24iOiJzb3V0aGNlbnRyYWx1cyJ9?api-version=2018-05-01']
location: ['https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1DTElURVNUOjJFUkdITFVXM0dNSVJKUVdMM1VDQTNWN0ZNNjJIQkNKMzJZWUhMRnxDNTI3MDVGOUE2MDUwREMwLVNPVVRIQ0VOVFJBTFVTIiwiam9iTG9jYXRpb24iOiJzb3V0aGNlbnRyYWx1cyJ9?api-version=2018-05-01']
pragma: [no-cache]
strict-transport-security: [max-age=31536000; includeSubDomains]
x-content-type-options: [nosniff]
x-ms-ratelimit-remaining-subscription-writes: ['1196']
x-ms-ratelimit-remaining-subscription-deletes: ['14999']
status: {code: 202, message: Accepted}
version: 1

Просмотреть файл

@ -3,10 +3,59 @@
# Licensed under the MIT License. See License.txt in the project root for license information.
# --------------------------------------------------------------------------------------------
from azure.cli.testsdk import ScenarioTest, JMESPathCheck, ResourceGroupPreparer
from azure.cli.testsdk import ScenarioTest, JMESPathCheck, ResourceGroupPreparer, StorageAccountPreparer
class MonitorTests(ScenarioTest):
@ResourceGroupPreparer(name_prefix='cli_test_metric_alert_v2')
@StorageAccountPreparer()
def test_metric_alert_v2_scenario(self, resource_group, storage_account):
from msrestazure.tools import resource_id
self.kwargs.update({
'alert': 'alert1',
'sa': storage_account,
'ag1': 'ag1',
'ag2': 'ag2',
'webhooks': '{{test=banoodle}}',
'sub': self.get_subscription_id(),
'sa_id': resource_id(
resource_group=resource_group,
subscription=self.get_subscription_id(),
name=storage_account,
namespace='Microsoft.Storage',
type='storageAccounts')
})
self.cmd('monitor action-group create -g {rg} -n {ag1}')
self.cmd('monitor action-group create -g {rg} -n {ag2}')
self.cmd('monitor metrics alert create -g {rg} -n {alert} --scopes {sa_id} --action {ag1} --description "Test" --condition "total transactions > 5 where ResponseType includes Success and ApiName includes GetBlob" --condition "avg SuccessE2ELatency > 250 where ApiName includes GetBlob or PutBlob"', checks=[
self.check('description', 'Test'),
self.check('severity', 2),
self.check('autoMitigate', None),
self.check('windowSize', '0:05:00'),
self.check('evaluationFrequency', '0:01:00'),
self.check('length(criteria.allOf)', 2),
self.check('length(criteria.allOf[0].dimensions)', 2),
self.check('length(criteria.allOf[1].dimensions)', 1)
])
self.cmd('monitor metrics alert update -g {rg} -n {alert} --severity 3 --description "alt desc" --add-action ag2 test=best --remove-action ag1 --remove-condition cond0 --add-condition "total transactions < 100" --evaluation-frequency 5m --window-size 15m --tags foo=boo --auto-mitigate', checks=[
self.check('description', 'alt desc'),
self.check('severity', 3),
self.check('autoMitigate', True),
self.check('windowSize', '0:15:00'),
self.check('evaluationFrequency', '0:05:00'),
self.check('length(criteria.allOf)', 2),
self.check('length(criteria.allOf[0].dimensions)', 1),
self.check('length(criteria.allOf[1].dimensions)', 0)
])
self.cmd('monitor metrics alert list -g {rg}',
checks=self.check('length(@)', 1))
self.cmd('monitor metrics alert show -g {rg} -n {alert}')
self.cmd('monitor metrics alert delete -g {rg} -n {alert}')
self.cmd('monitor metrics alert list -g {rg}',
checks=self.check('length(@)', 0))
@ResourceGroupPreparer(name_prefix='cli_test_monitor')
def test_metric_alert_basic_scenarios(self, resource_group):
vm = 'vm1'

Просмотреть файл

@ -273,3 +273,54 @@ def process_webhook_prop(namespace):
result[key] = value
namespace.webhook_properties = result
def get_action_group_validator(dest):
def validate_action_groups(cmd, namespace):
action_groups = getattr(namespace, dest, None)
if not action_groups:
return
from msrestazure.tools import is_valid_resource_id, resource_id
from azure.cli.core.commands.client_factory import get_subscription_id
subscription = get_subscription_id(cmd.cli_ctx)
resource_group = namespace.resource_group_name
for group in action_groups:
if not is_valid_resource_id(group.action_group_id):
group.action_group_id = resource_id(
subscription=subscription,
resource_group=resource_group,
namespace='microsoft.insights',
type='actionGroups',
name=group.action_group_id
)
return validate_action_groups
def get_action_group_id_validator(dest):
def validate_action_group_ids(cmd, namespace):
action_groups = getattr(namespace, dest, None)
if not action_groups:
return
from msrestazure.tools import is_valid_resource_id, resource_id
from azure.cli.core.commands.client_factory import get_subscription_id
action_group_ids = []
subscription = get_subscription_id(cmd.cli_ctx)
resource_group = namespace.resource_group_name
for group in action_groups:
if not is_valid_resource_id(group):
group = resource_id(
subscription=subscription,
resource_group=resource_group,
namespace='microsoft.insights',
type='actionGroups',
name=group
)
action_group_ids.append(group)
setattr(namespace, dest, action_group_ids)
return validate_action_group_ids

Просмотреть файл

@ -29,7 +29,7 @@ CLASSIFIERS = [
DEPENDENCIES = [
'azure-cli-core',
'azure-mgmt-monitor==0.5.0'
'azure-mgmt-monitor==0.5.2'
]
with open('README.rst', 'r', encoding='utf-8') as f:
@ -52,7 +52,8 @@ setup(
'azure.cli',
'azure.cli.command_modules',
'azure.cli.command_modules.monitor',
'azure.cli.command_modules.monitor.operations'
'azure.cli.command_modules.monitor.operations',
'azure.cli.command_modules.monitor.grammar'
],
package_data={'azure.cli.command_modules.monitor.operations': ['autoscale-parameters-template.json']},
install_requires=DEPENDENCIES,

Просмотреть файл

@ -2,6 +2,11 @@
Release History
===============
2.1.4
++++++
* Minor fixes.
2.1.3
++++++
* role assignment: fix a recent regression that principalName is missing

Просмотреть файл

@ -14,7 +14,7 @@ except ImportError:
logger.warn("Wheel is not available, disabling bdist_wheel hook")
cmdclass = {}
VERSION = "2.1.3"
VERSION = "2.1.4"
CLASSIFIERS = [
'Development Status :: 5 - Production/Stable',
@ -33,7 +33,7 @@ CLASSIFIERS = [
DEPENDENCIES = [
'azure-cli-core',
'azure-mgmt-authorization==0.50.0',
'azure-mgmt-monitor==0.5.0',
'azure-mgmt-monitor==0.5.2',
'azure-graphrbac==0.40.0',
'azure-keyvault==1.1.0',
'pytz'

Просмотреть файл

@ -24,7 +24,7 @@ CLASSIFIERS = [
# Until https://gitlab.com/pycqa/flake8/issues/415 is resolved, pin version of pycodestyle
DEPENDENCIES = [
'autopep8>=1.2.4',
'pylint>=1.7.1',
'pylint==1.9.2',
'coverage>=4.2',
'flake8==3.5.0',
'pycodestyle==2.3.1',