def add_rule(cmd, client, resource_group_name, profile_name, endpoint_name, order, action_name, match_variable=None, operator=None, match_values=None, selector=None, negate_condition=None, transform=None, cache_behavior=None, cache_duration=None, header_action=None, header_name=None, header_value=None, query_string_behavior=None, query_parameters=None, redirect_type=None, redirect_protocol=None, custom_hostname=None, custom_path=None, custom_querystring=None, custom_fragment=None, source_pattern=None, destination=None, preserve_unmatched_path=None, rule_name=None, origin_group=None): partner_skus = [SkuName.PREMIUM_VERIZON, SkuName.CUSTOM_VERIZON, SkuName.STANDARD_AKAMAI, SkuName.STANDARD_VERIZON] profile = client.profiles.get(resource_group_name, profile_name) if rule_name is None and profile.sku.name not in partner_skus: raise CLIError("--rule-name is required for Microsoft SKU") endpoint = client.endpoints.get(resource_group_name, profile_name, endpoint_name) policy = endpoint.delivery_policy if policy is None: policy = EndpointPropertiesUpdateParametersDeliveryPolicy( description='delivery_policy', rules=[]) _convert_to_unified_delivery_rules(policy) conditions = [] condition = create_condition(match_variable, operator, match_values, selector, negate_condition, transform) if condition is not None: conditions.append(condition) actions = [] action = create_action(action_name, cache_behavior, cache_duration, header_action, header_name, header_value, query_string_behavior, query_parameters, redirect_type, redirect_protocol, custom_hostname, custom_path, custom_querystring, custom_fragment, source_pattern, destination, preserve_unmatched_path, cmd, resource_group_name, profile_name, endpoint_name, origin_group) if action is not None: actions.append(action) rule = DeliveryRule( name=rule_name, order=order, conditions=conditions, actions=actions ) policy.rules.append(rule) params = EndpointUpdateParameters( delivery_policy=policy ) return client.endpoints.begin_update(resource_group_name, profile_name, endpoint_name, params)
def add_rule(client, resource_group_name, profile_name, endpoint_name, order, rule_name, action_name, match_variable=None, operator=None, match_values=None, selector=None, negate_condition=None, transform=None, cache_behavior=None, cache_duration=None, header_action=None, header_name=None, header_value=None, query_string_behavior=None, query_parameters=None, redirect_type=None, redirect_protocol=None, custom_hostname=None, custom_path=None, custom_querystring=None, custom_fragment=None, source_pattern=None, destination=None, preserve_unmatched_path=None): endpoint = client.endpoints.get(resource_group_name, profile_name, endpoint_name) policy = endpoint.delivery_policy if policy is None: policy = EndpointPropertiesUpdateParametersDeliveryPolicy( description='delivery_policy', rules=[]) conditions = [] condition = create_condition(match_variable, operator, match_values, selector, negate_condition, transform) if condition is not None: conditions.append(condition) actions = [] action = create_action(action_name, cache_behavior, cache_duration, header_action, header_name, header_value, query_string_behavior, query_parameters, redirect_type, redirect_protocol, custom_hostname, custom_path, custom_querystring, custom_fragment, source_pattern, destination, preserve_unmatched_path) if action is not None: actions.append(action) rule = DeliveryRule( name=rule_name, order=order, conditions=conditions, actions=actions ) policy.rules.append(rule) params = EndpointUpdateParameters( delivery_policy=policy ) return client.endpoints.update(resource_group_name, profile_name, endpoint_name, params)