Rules Engine

Edit on GitHub

Com a API de Rules Engine, você pode verificar, remover ou atualizar configurações existentes, além de criar novos ajustes.

  1. Obter lista de regras em Rules Engine
  2. Obter dados de regras em Rules Engine
  3. Deletar uma regra em Rules Engine
  4. Criar nova regra em Rules Engine
  5. Sobrescrever regra em Rules Engine
  6. Atualizar os campos de uma regra em Rules Engine

1. Obter lista de regras em Rules Engine

Este retorno gera uma lista de regras em Rules Engine.

GET /edge_applications/:edge_application_id:/rules_engine/:phase:/rules

Permissão necessária: View Edge Application

Parâmetro Descrição Tipo Tipo de Dado
Authorization
*obrigatório
A autenticação por Token previamente criado através do endpoint de Criação de Token. header string
Accept
*obrigatório
Informações sobre o tipo de retorno e versão. header string;
application/json;version=3
:edge_application_id
*obrigatório
O id da edge application que pretende se consultar. path number
:phase
*obrigatório
A fase de processamento que você pode manipular em Rules Engine. path string

Exemplo de Requisição

GET /edge_applications/1601406733/rules_engine/request/rules
Accept: application/json; version=3
Authorization: token cf2078926f91a6e638af3f4a6977b505edfe5941

Exemplo de Resposta

{
    "count": 4,
    "total_pages": 1,
    "schema_version": 3,
    "links": {
        "previous": null,
        "next": null
    },
    "results": [
        {
            "id": 9539,
            "name": "Image",
            "phase": "request",
            "behaviors": [
                {
                    "name": "bypass_cache_phase",
                    "target": null
                },
                {
                    "name": "optimize_images",
                    "target": null
                }
            ],
            "criteria": [
                [
                    {
                        "variable": "${request_uri}",
                        "operator": "matches",
                        "conditional": "if",
                        "input_value": "\\.(jpg|jpeg|gif|bmp|png)"
                    }
                ]
            ],
            "is_active": true,
            "order": 1
        },
        {
            "id": 14086,
            "name": "The Rule",
            "phase": "request",
            "behaviors": [
                {
                    "name": "bypass_cache_phase",
                    "target": null
                }
            ],
            "criteria": [
                [
                    {
                        "variable": "${uri}",
                        "operator": "starts_with",
                        "conditional": "if",
                        "input_value": "/"
                    },
                    {
                        "variable": "${uri}",
                        "operator": "does_not_start_with",
                        "conditional": "and",
                        "input_value": "/if"
                    }
                ]
            ],
            "is_active": true,
            "order": 2
        }
    ]
}

2. Consultar dados de regras em Rules Engine

Fornece detalhes de uma regra em Rules Engine. As informações retornadas por este comando se referem às regras de Rules Engine de uma Edge Application.

GET /edge_applications/:edge_application_id:/rules_engine/:phase:/rules/:rule_id:

Permissão necessária: View Edge Application

Parâmetro Descrição Tipo Tipo de Dado
Authorization
*obrigatório
A autenticação por Token previamente criado através do endpoint de Criação de Token. header string
Accept
*obrigatório
Informações sobre o tipo de retorno e versão. header string;
application/json;version=3
:edge_application_id
*obrigatório
O id da edge application que pretende se consultar. path number
:phase
*obrigatório
A fase de processamento que você pode manipular em Rules Engine. path string
:rule_id
*obrigatório
O id da regra que se pretende consultar. path number

Exemplo de Requisição

GET /edge_applications/1601406733/rules_engine/request/rules/9539
Accept: application/json; version=3
Authorization: token cf2078926f91a6e638af3f4a6977b505edfe5941

Exemplo de Resposta

{
    "results": {
        "id": 9539,
        "name": "Image",
        "phase": "request",
        "behaviors": [
            {
                "name": "bypass_cache_phase",
                "target": null
            },
            {
                "name": "optimize_images",
                "target": null
            }
        ],
        "criteria": [
            [
                {
                    "variable": "${request_uri}",
                    "operator": "matches",
                    "conditional": "if",
                    "input_value": "\\.(jpg|jpeg|gif|bmp|png)"
                }
            ]
        ],
        "is_active": true,
        "order": 1
    },
    "schema_version": 3
}

3. Deletar uma regra em Rules Engine

Este retorno remove uma regra em Rules Engine. A operação é definitiva, ou seja, não existe nenhuma forma de se realizar rollback dessas informações após a confirmação pelo usuário.

Todas as informações associadas a essa regra também serão removidas.

A API não exige confirmação para a execução dessa ação.

DELETE /edge_applications/:edge_application_id:/rules_engine/:phase:/rules/:rule_id:

Permissão necessária: Edit Edge Application

Parâmetro Descrição Tipo Tipo de Dado
Authorization
*obrigatório
A autenticação por Token previamente criado através do endpoint de Criação de Token. header string
Accept
*obrigatório
Informações sobre o tipo de retorno e versão. header string;
application/json;version=3
:edge_application_id
*obrigatório
O id da edge application que pretende se deletar. path number
:phase
*obrigatório
A fase de processamento que você pode manipular em Rules Engine. path string
:rule_id
*obrigatório
O id da regra que se pretende deletar. path number

Exemplo de Requisição

DELETE /edge_applications/1601406733/rules_engine/request/rules/14086
Accept: application/json; version=3
Authorization: token 2909f3932069047f4736dc87e72baaddd19c9f75

Exemplo de Resposta

HTTP/2 204

4. Criar nova regra em Rules Engine

Possibilita a criação de uma nova regra em Rules Engine de uma Edge Application.

POST /edge_applications/:edge_application_id:/rules_engine/:phase:/rules

Permissão necessária: Edit Security Settings

Parâmetro Descrição Tipo Tipo de Dado
Authorization
*obrigatório
A autenticação por Token previamente criado através do endpoint de Criação de Token. header string
Accept
*obrigatório
Informações sobre o tipo de retorno e versão. header string;
application/json;version=3
Content-Type
*obrigatório
O tipo de codificação utilizada no Body (application/json).
Exemplo:
Content-Type: application/json
header string
:edge_application_id
*obrigatório
O id da edge application que pretende se criar. path number
:phase
*obrigatório
A fase de processamento que você pode manipular em Rules Engine. path string
:rule_id
*obrigatório
O id da regra que se pretende criar. path number

Veja abaixo a lista de behaviors que podem ser aplicados na API:

Nome Behavior
Add Request Cookie add_request_cookie
Add Request Header add_request_header
Add Response Cookie set_cookie
Add Response Header add_response_header
Bypass Cache bypass_cache_phase
Capture Match Groups capture_match_groups
Deliver deliver
Deny (403 Forbidden) deny
Enable Gzip enable_gzip
Filter Request Cookie filter_request_cookie
Filter Request Header filter_request_header
Filter Response Cookie filter_response_cookie
Filter Response Header filter_response_header
Finish Request Phase finish_request_phase
Forward Cookies forward_cookies
Optimize Images optimize_images
Redirect HTTP to HTTPS redirect_http_to_https
Redirect To (301 Moved Permanently) redirect_to_301
Redirect To (302 Found) redirect_to_302
Rewrite Request rewrite_request
Run Function run_function
Set Cache Policy set_cache_policy
Set Origin set_origin

Exemplo de Requisição

POST /edge_applications/1601406733/rules_engine/request/rules
Accept: application/json; version=3
Authorization: token cf2078926f91a6e638af3f4a6977b505edfe5941
Content-Type: application/json
{
    "name": "New Rule",
    "criteria": [
              		[
                    	{
                    		"conditional": "if",
                    		"variable": "${uri}",
                    		"operator": "starts_with",
                    		"input_value": "/"
                    	},
                    	{
                    		"conditional": "and",
                    		"variable": "${uri}",
                    		"operator": "does_not_start_with",
                    		"input_value": "/if"
                    	}
                	]
            	],
    "behaviors": [
            		{
            			"name": "deliver"
            		}
            	]
}

Exemplo de Resposta

{
    "results": {
        "id": 15116,
        "name": "New Rule",
        "phase": "request",
        "behaviors": [
            {
                "name": "deliver",
                "target": null
            }
        ],
        "criteria": [
            [
                {
                    "variable": "${uri}",
                    "operator": "starts_with",
                    "conditional": "if",
                    "input_value": "/"
                },
                {
                    "variable": "${uri}",
                    "operator": "does_not_start_with",
                    "conditional": "and",
                    "input_value": "/if"
                }
            ]
        ],
        "is_active": true,
        "order": 4
    },
    "schema_version": 3
}

5. Sobrescrever uma regra em Rules Engine

Este retorno sobrescreve todos os campos de uma regra em Rules Engine, preservando a id.

Se você deseja atualizar somente alguns campos, sem alterar o valor dos demais, considere utilizar o método PATCH ao invés de PUT.

PUT /edge_applications/:edge_application_id:/rules_engine/:phase:/rules/:rule_id:

Permissão necessária: Edit Edge Application

Parâmetro Descrição Tipo Tipo de Dado
Authorization
*obrigatório
Authentication through the Token, previously created through the endpoint of Token Creation. header string
Accept
*obrigatório
Informações sobre o tipo de retorno e versão. header string;
application/json;version=3
Content-Type
*obrigatório
O tipo de codificação utilizada no Body (application/json).

Exemplo:
Content-Type: application/json
header string
:edge_application_id
*obrigatório
O id da edge application que pretende se sobrescrever. path number
:phase
*obrigatório
A fase de processamento que você pode manipular em Rules Engine. path string
:rule_id
*obrigatório
O id da regra que se pretende sobrescrever. path number

Exemplo de Requisição

PUT /edge_applications/1601406733/rules_engine/request/rules/9539
Accept: application/json; version=3
Authorization: token ec6aabdc0b6bbeed826a36d8731630e36b6e3f24
Content-Type: application/json
{
    "name": "Sobrescrever Regra",
    "criteria": [
              		[
                    	{
                    		"conditional": "if",
                    		"variable": "${uri}",
                    		"operator": "starts_with",
                    		"input_value": "/"
                    	},
                    	{
                    		"conditional": "and",
                    		"variable": "${uri}",
                    		"operator": "does_not_start_with",
                    		"input_value": "/if"
                    	}
                	]
            	],
    "behaviors": [
            		{
            			"name": "deliver"
            		}
            	]
}

Exemplo de Resposta

{
    "results": {
        "id": 9539,
        "name": "Sobrescrever Regra",
        "phase": "request",
        "criteria": [
            [
                {
                    "variable": "${uri}",
                    "operator": "starts_with",
                    "conditional": "if",
                    "input_value": "/"
                },
                {
                    "variable": "${uri}",
                    "operator": "does_not_start_with",
                    "conditional": "and",
                    "input_value": "/if"
                }
            ]
        ],
        "behaviors": [
            {
                "name": "deliver",
                "target": null
            }
        ],
        "is_active": true,
        "order": 1
    },
    "schema_version": 3
}

6. Atualizar os campos de uma regra em Rules Engine

Este retorno atualiza um ou mais campos de uma regra em Rules Engine, preservando o valor dos campos não informados

PATCH /edge_applications/:edge_application_id:/rules_engine/:phase:/rules/:rule_id:

Permissão necessária: Edit Edge Application

Parâmetro Descrição Tipo Tipo de Dado
Authorization
*obrigatório
Authentication through the Token, previously created through the endpoint of Token Creation header string
Accept
*obrigatório
Informações sobre o tipo de retorno e versão header string;
application/json;version=3
Content-Type
*obrigatório
O tipo de codificação utilizada no Body (application/json).
Exemplo:
Content-Type: application/json
header string
:edge_application_id (obrigatório) O id da edge application que pretende se atualizar path number
:phase
*obrigatório
A fase de processamento que você pode manipular em Rules Engine. path string
:rule_id
*obrigatório
O id da regra que se pretende atualizar. path number

Exemplo de Requisição

PATCH /edge_applications/1601406733/rules_engine/request/rules/9539
Accept: application/json; version=3
Authorization: token ec6aabdc0b6bbeed826a36d8731630e36b6e3f24
Content-Type: application/json
{
    "name": "Atualizar Regra",
    "criteria": [
              		[
                    	{
                    		"conditional": "if",
                    		"variable": "${uri}",
                    		"operator": "starts_with",
                    		"input_value": "/"
                    	},
                    	{
                    		"conditional": "and",
                    		"variable": "${uri}",
                    		"operator": "does_not_start_with",
                    		"input_value": "/if"
                    	}
                	]
            	],
    "behaviors": [
            		{
            			"name": "deliver"
            		}
            	]
}

Exemplo de Resposta

{
    "results": {
        "id": 9539,
        "name": "Atualizar Regra",
        "phase": "request",
        "behaviors": [
            {
                "name": "deliver",
                "target": null
            }
        ],
        "criteria": [
            [
                {
                    "variable": "${uri}",
                    "operator": "starts_with",
                    "conditional": "if",
                    "input_value": "/"
                },
                {
                    "variable": "${uri}",
                    "operator": "does_not_start_with",
                    "conditional": "and",
                    "input_value": "/if"
                }
            ]
        ],
        "is_active": true,
        "order": 1
    },
    "schema_version": 3
}

Não encontrou o que procurava? Abra um ticket.