display: Cloudflare WAF name: CloudflareWAF sectionorder: - Connect - Collect category: Network Security provider: Cloudflare commonfields: id: CloudflareWAF version: -1 configuration: - display: Server URL (e.g. https://api.cloudflare.com/client/v4/) name: server defaultvalue: https://api.cloudflare.com/client/v4/ type: 0 required: false section: Connect - name: credentials display: API Token type: 9 required: false displaypassword: API Token hiddenusername: true section: Connect - name: global_api_key display: Global API Key type: 9 required: false hiddenusername: true displaypassword: Global API Key section: Connect - name: email display: Email type: 0 required: false section: Connect - name: account_id display: Account ID required: true type: 0 additionalinfo: Account identifier. section: Connect - name: zone_id display: Default Zone ID type: 0 additionalinfo: The domain identifier. Zone ID can be override when executing commands.The domain identifier. Zone ID can be override when executing commands. required: false section: Connect - name: proxy display: Use system proxy settings defaultvalue: 'false' type: 8 additionalinfo: required: false section: Connect - name: insecure display: Trust any certificate (not secure) defaultvalue: 'false' type: 8 additionalinfo: '' required: false section: Connect description: Cloudflare WAF integration allows customers to manage firewall rules, filters, and IP-lists. It also allows to retrieve zones list for each account. script: commands: - arguments: - auto: PREDEFINED description: The rule action. name: action predefined: - block - challenge - js_challenge - managed_challenge - allow - log - bypass required: true - description: Identifier of an existing filter. Required if filter_expression is unspecified. name: filter_id - description: 'Filter expression when creating a filter for a new rule. Required if filter_id is unspecified. Expression example: "(ip.src eq 192.0.0.4) or (ip.src in $list_name)". For syntax explanations and more examples: https://developers.cloudflare.com/ruleset-engine/rules-language/expressions/' name: filter_expression - auto: PREDEFINED description: 'Comma separated list of products to bypass for a request when the bypass action is used. Valid values: zoneLockdown, uaBlock, bic, hot, securityLevel, rateLimit, waf.' isArray: true name: products predefined: - zoneLockdown - uaBlock - bic - hot - securityLevel - rateLimit - waf - description: >- The priority of the rule to allow control of processing order. A lower number indicates high priority. If not provided, any rules with a priority will be sequenced before those without. min value: 0. max value: 2147483647. name: priority - auto: PREDEFINED description: Whether this firewall rule is currently paused. name: paused predefined: - 'True' - 'False' - description: A description of the rule to help identify it. name: description - description: Short reference tag to quickly select related rules. name: ref - description: Zone identifier. The initialization will override the value set in the instance. Zone ID field is required for this command. name: zone_id description: Create a new firewall rule that create new filter or use an exist filter. name: cloudflare-waf-firewall-rule-create outputs: - contextPath: CloudflareWAF.FirewallRule.id description: Firewall rule ID. type: String - contextPath: CloudflareWAF.FirewallRule.priority description: The priority of the rule to allow control of processing order. - contextPath: CloudflareWAF.FirewallRule.action description: The action of the rule. - contextPath: CloudflareWAF.FirewallRule.products description: List of products to bypass for a request when the bypass action is used. - contextPath: CloudflareWAF.FirewallRule.paused description: Whether this firewall rule is currently paused. type: Boolean - contextPath: CloudflareWAF.FirewallRule.description description: A description of the rule to help identify it. type: String - contextPath: CloudflareWAF.FirewallRule.ref description: Short reference tag to quickly select related rules. type: String - arguments: - description: 'Firewall Rule identifier. ' name: id required: true - auto: PREDEFINED description: The exist rule action or the new rule action to set. name: action predefined: - block - challenge - js_challenge - managed_challenge - allow - log - bypass required: true - description: The ID of the exist rule filter or the ID of the new filter to set. name: filter_id required: true - auto: PREDEFINED description: 'List of products to bypass for a request when the bypass action is used (comma separated list). Valid values: zoneLockdown, uaBlock, bic, hot, securityLevel, rateLimit, waf.' isArray: true name: products predefined: - zoneLockdown - uaBlock - bic - hot - securityLevel - rateLimit - waf - description: >- The priority of the rule to allow control of processing order. A lower number indicates high priority. If not provided, any rules with a priority will be sequenced before those without. min value: 0. max value: 2147483647. name: priority - auto: PREDEFINED description: Whether this firewall rule is currently paused. name: paused predefined: - 'true' - 'false' - description: A description of the rule to help identify it. name: description - description: Short reference tag to quickly select related rules. name: ref - description: Zone identifier. The initialization will override the value set in the instance. Zone ID field is required for this command. name: zone_id description: Update firewall rule by the specified rule ID. Can update rule action, paused, description, priority, products and ref. Can not update or delete rule filter, ONLY add a new filter. name: cloudflare-waf-firewall-rule-update outputs: [] - arguments: - description: 'Firewall Rule identifier. ' name: id required: true - description: Zone identifier. The initialization will override the value set in the instance. Zone ID field is required for this command. name: zone_id description: Delete firewall rule by the specified rule ID. name: cloudflare-waf-firewall-rule-delete outputs: [] - arguments: - description: 'Firewall Rule identifier. ' name: id - auto: PREDEFINED description: The rule action. name: action predefined: - block - challenge - js_challenge - managed_challenge - allow - log - bypass - auto: PREDEFINED description: Whether this firewall rule is currently paused. name: paused predefined: - 'true' - 'false' - description: A description of the rule to help identify it. name: description - description: |- Page number of paginated results. min value: 1. name: page - description: 'Number of firewall rules per page. The argument accepts values ​​divided by 5. Minimum value 5. Maximum value 100. For example: 5,10,15.' name: page_size - defaultValue: 50 description: 'The maximum number of records to retrieve. The argument accepts values ​​divided by 5. Minimum value 5. Maximum value 100. For example: 5,10,15.' name: limit - description: Zone identifier. The initialization will override the value set in the instance. Zone ID field is required for this command. name: zone_id description: List of firewall rules or details of individual rule by ID. name: cloudflare-waf-firewall-rule-list outputs: - contextPath: CloudflareWAF.FirewallRule.id description: 'Firewall Rule identifier. ' type: String - contextPath: CloudflareWAF.FirewallRule.action description: The rule action. type: String - contextPath: CloudflareWAF.FirewallRule.paused description: Whether this firewall rule is currently paused. type: Boolean - contextPath: CloudflareWAF.FirewallRule.description description: Rule description. type: String - contextPath: CloudflareWAF.FirewallRule.Filter.id description: Rule filter id. type: String - contextPath: CloudflareWAF.FirewallRule.Filter.expression description: Rule filter expression. type: String - contextPath: CloudflareWAF.FirewallRule.Filter.paused description: Whether this rule filter is currently paused. type: Boolean - contextPath: CloudflareWAF.FirewallRule.Filter.description description: Description of the rule filter. type: String - contextPath: CloudflareWAF.FirewallRule.Filter.ref description: Short reference tag. type: String - arguments: - description: 'The filter expression to be used. Expression example: "(ip.src eq 192.0.0.4) or (ip.src in $list_name)". For syntax explanations and more examples: https://developers.cloudflare.com/ruleset-engine/rules-language/expressions/' name: expression required: true - description: Short reference tag to quickly select related rules. name: ref - auto: PREDEFINED description: Whether this filter is currently paused. name: paused predefined: - 'true' - 'false' - description: A note that you can use to describe the purpose of the filter. name: description - description: Zone identifier. The initialization will override the value set in the instance. Zone ID field is required for this command. name: zone_id description: Create a new filter which can be added to a firewall rule. name: cloudflare-waf-filter-create outputs: - contextPath: CloudflareWAF.Filter.id description: Filter identifier. type: String - contextPath: CloudflareWAF.Filter.expression description: The filter expression to be used. type: String - contextPath: CloudflareWAF.Filter.paused description: Whether this filter is currently paused. type: Boolean - contextPath: CloudflareWAF.Filter.description description: A note that describe the purpose of the filter. type: String - contextPath: CloudflareWAF.Filter.ref description: Short reference tag to quickly select related rules. type: String - arguments: - name: id description: 'Filter identifier. ' required: true defaultValue: '' predefined: - '' - description: 'The filter expression to be used. Expression example: "(ip.src eq 192.0.0.4) or (ip.src in $list_name)". For syntax explanations and more examples: https://developers.cloudflare.com/ruleset-engine/rules-language/expressions/' name: expression required: true - description: Short reference tag to quickly select related rules. name: ref - auto: PREDEFINED description: Whether this filter is currently paused. name: paused predefined: - 'true' - 'false' - description: A note that you can use to describe the purpose of the filter. name: description - description: Zone identifier. The initialization will override the value set in the instance. Zone ID field is required for this command. name: zone_id description: Update filter by the specified filter ID. name: cloudflare-waf-filter-update outputs: [] - arguments: - description: The filter ID. name: filter_id required: true - description: Zone identifier. The initialization will override the value set in the instance. Zone ID field is required for this command. name: zone_id description: Delete an exist filter (Note that a filter linked to firewall rule cannot be deleted). name: cloudflare-waf-filter-delete outputs: [] - arguments: - description: 'Filter identifier. ' name: id - description: The filter expression to be used. name: expression - description: Short reference tag to quickly select related rules. name: ref - auto: PREDEFINED description: Whether this filter is currently paused. name: paused predefined: - 'true' - 'false' - description: A note that you can use to describe the purpose of the filter. name: description - description: |- Page number of paginated results. min value: 1. name: page - description: >- Number of filter based firewall rules per page. The argument accepts values ​​divided by 5. Minimum value 5. Maximum value 100. For example: 5,10,15. name: page_size - defaultValue: 50 description: 'The maximum number of records to retrieve. The argument accepts values ​​divided by 5. Minimum value 5. Maximum value 100. For example: 5,10,15.' name: limit - description: Zone identifier. The initialization will override the value set in the instance. Zone ID field is required for this command. name: zone_id description: List filters. name: cloudflare-waf-filter-list outputs: - contextPath: CloudflareWAF.Filter.id description: 'Filter identifier. ' type: String - contextPath: CloudflareWAF.Filter.expression description: The filter expression. type: String - contextPath: CloudflareWAF.Filter.description description: Description of the filter purpose. type: String - contextPath: CloudflareWAF.Filter.paused description: Whether this filter is currently paused. type: Boolean - contextPath: CloudflareWAF.Filter.ref description: Short reference tag. type: String - arguments: - auto: PREDEFINED defaultValue: all description: Whether to match all search requirements or at least one (any). name: match predefined: - any - all - description: A domain name. name: name - description: Account name. name: account_name - description: Account identifier tag. name: account_id - auto: PREDEFINED description: Status of the zone. name: status predefined: - active - pending - initializing - moved - deleted - deactivated - read only - auto: PREDEFINED description: Field to order zones by. name: order predefined: - name - status - account.id - account.name - auto: PREDEFINED description: Direction to order zones. name: direction predefined: - asc - desc - description: 'Page number of paginated results. Default value: 1, min value: 1.' name: page - description: >- Number of zones per page. The argument accepts values ​​divided by 5. Minimum value 5. Maximum value 100. For example: 5,10,15. name: page_size - defaultValue: 50 description: 'The maximum number of records to retrieve. The argument accepts values ​​divided by 5. Minimum value 5. Maximum value 100. For example: 5,10,15.' name: limit description: List all account zones. name: cloudflare-waf-zone-list outputs: - contextPath: CloudflareWAF.Zone.success description: The status of the request (true or false). type: Boolean - contextPath: CloudflareWAF.Zone.id description: 'The zone ID. ' type: String - contextPath: CloudflareWAF.Zone.name description: A domain name. type: String - contextPath: CloudflareWAF.Zone.development_mode description: Development mode. type: Integer - contextPath: CloudflareWAF.Zone.original_name_servers description: Original name servers. type: Data - contextPath: CloudflareWAF.Zone.original_registrar description: Original registrar. type: String - contextPath: CloudflareWAF.Zone.original_dnshost description: Original DNS host. type: String - contextPath: CloudflareWAF.Zone.created_on description: Zone created date. type: Date - contextPath: CloudflareWAF.Zone.modified_on description: Zone modified date. type: Date - contextPath: CloudflareWAF.Zone.activated_on description: Zone activated date. type: Date - contextPath: CloudflareWAF.Zone.status description: Status of the zone. type: String - contextPath: CloudflareWAF.Zone.paused description: Whether this zone is currently paused. type: Boolean - contextPath: CloudflareWAF.Zone.type description: Short reference tag. type: String - contextPath: CloudflareWAF.Zone.permissions description: List of zone permissions. type: Data - contextPath: CloudflareWAF.Zone.Account description: Account details. type: Data - contextPath: CloudflareWAF.Zone.owner description: The zone owner details. type: Data - contextPath: CloudflareWAF.Zone.name_servers description: Zone servers names. type: Data - arguments: - description: The name of the list (used in filter expressions). name: name required: true - description: A note that can be used to annotate the List. name: description description: Create a new IP-list. An IP-list is a list that includes IP addresses and CIDR. IP-list is used in the filter expression. name: cloudflare-waf-ip-list-create outputs: - contextPath: CloudflareWAF.IpList.id description: 'The list ID. ' type: String - contextPath: CloudflareWAF.IpList.name description: The name of the list. type: String - contextPath: CloudflareWAF.IpList.description description: A note that annotate the List. type: String - contextPath: CloudflareWAF.IpList.kind description: The kind of values in the List. type: String - contextPath: CloudflareWAF.IpList.num_items description: Number of list items. type: Integer - contextPath: CloudflareWAF.IpList.num_referencing_filters description: Number of referencing filters to the list. type: Integer - contextPath: CloudflareWAF.IpList.created_on description: List created date. type: Date - contextPath: CloudflareWAF.IpList.modified_on description: List modified date. type: Date - arguments: - description: 'The list ID. ' name: id required: true description: Delete IP-list by the specified list ID. Note that IP-list that assigned to a firewall rule can not be delete, only after unassign the list. name: cloudflare-waf-ip-list-delete outputs: [] - arguments: - description: Retrieve details for an individual list Id. name: id - description: |- Page number of paginated results. Default value: 1, min value: 1. name: page - description: 'Number of IP-list per page. The argument accepts values ​​divided by 5. Minimum value 5. Maximum value 100. For example: 5,10,15.' name: page_size - defaultValue: 50 description: 'The maximum number of records to retrieve. The argument accepts values ​​divided by 5. Minimum value 5. Maximum value 100. For example: 5,10,15.' name: limit description: List IP-lists. name: cloudflare-waf-ip-lists-list outputs: - contextPath: CloudflareWAF.IpList.id description: 'The list ID. ' type: String - contextPath: CloudflareWAF.IpList.name description: The list name. type: String - contextPath: CloudflareWAF.IpList.description description: List description. type: String - contextPath: CloudflareWAF.IpList.kind description: List kind (ip\redirect). type: String - contextPath: CloudflareWAF.IpList.num_items description: Number of list items. - contextPath: CloudflareWAF.IpList.num_referencing_filters description: Number of referencing filters to the list. - arguments: - name: list_id description: The ID of the list to insert the new items. required: true defaultValue: '' predefined: - '' - description: The new items to be added (comma separated IP addresses). isArray: true name: items required: true - auto: PREDEFINED defaultValue: true description: Use Cortex XSOAR built-in polling to retrieve the result when it's ready. Default is False. name: polling predefined: - 'true' - 'false' - defaultValue: '10' description: Indicates how long to wait between command execution (in seconds) when 'polling' argument is true. Minimum value is 10 seconds. Default is 10. name: interval - defaultValue: '60' description: Indicates the time in seconds until the polling sequence timeouts. Default is 60. name: timeout - description: The ID of the pipeline run to retrieve when polling argument is true. Intended for use by the Polling process and does not need to be provided by the user. name: operation_id deprecated: true description: 'Create new items for exist IP-list. ' name: cloudflare-waf-ip-list-item-create outputs: [] polling: true compliantpolicies: - IP Blockage - arguments: - description: The list ID. name: list_id required: true - description: The new items. name: items required: true - auto: PREDEFINED defaultValue: true description: Use Cortex XSOAR built-in polling to retrieve the result when it's ready. Default is False. name: polling predefined: - 'true' - 'false' - defaultValue: '10' description: Indicates how long to wait between command execution (in seconds) when 'polling' argument is true. Minimum value is 10 seconds. Default is 10. name: interval - defaultValue: '60' description: Indicates the time in seconds until the polling sequence timeouts. Default is 60. name: timeout - description: The ID of the pipeline run to retrieve when polling argument is true. Intended for use by the Polling process and does not need to be provided by the user. name: operation_id deprecated: true description: Replace the IP-list items with a new items. name: cloudflare-waf-ip-list-item-update outputs: [] polling: true - arguments: - description: The list ID. name: list_id required: true - description: The items ID to be delete. name: items_id required: true - auto: PREDEFINED defaultValue: true description: Use Cortex XSOAR built-in polling to retrieve the result when it's ready. Default is False. name: polling predefined: - 'true' - 'false' - defaultValue: '10' description: Indicates how long to wait between command execution (in seconds) when 'polling' argument is true. Minimum value is 10 seconds. Default is 10. name: interval - defaultValue: '60' description: Indicates the time in seconds until the polling sequence timeouts. Default is 60. name: timeout - description: The ID of the pipeline run to retrieve when polling argument is true. Intended for use by the Polling process and does not need to be provided by the user. name: operation_id deprecated: true description: Delete item of a IP-list by the specified list ID and list item. name: cloudflare-waf-ip-list-item-delete outputs: [] polling: true - arguments: - description: The list ID. name: list_id required: true - description: Retrieve details for an individual item ID. Note that the item_id field can only be provided if item_ip is not provided and vice versa. name: item_id - description: Retrieve details for an individual item IP. Note that the item_ip field can only be provided if item_id is not provided and vice versa. name: item_ip - description: |- Page number of paginated results. Default value: 1, min value: 1. name: page - description: 'Number of zones per page. The argument accepts values ​​divided by 5. Minimum value 5. Maximum value 100. For example: 5,10,15.' name: page_size - defaultValue: 50 description: 'The maximum number of records to retrieve. The argument accepts values ​​divided by 5. Minimum value 5. Maximum value 100. For example: 5,10,15.' name: limit description: List all items in the List or details of individual item by ID or IP. This command may take a long time, you can set the 'execution-timeout' field if necessary. name: cloudflare-waf-ip-list-item-list outputs: - contextPath: CloudflareWAF.IpListItem.items description: The list items. type: Unknown - contextPath: CloudflareWAF.IpListItem.list_id description: The list ID. type: String - arguments: - description: The Zone identifier. If provided, lists zone-level rulesets. If not provided, lists account-level rulesets. The value set in the instance configuration is used by default. name: zone_id description: The command lists all rulesets at the account or zone level. name: cloudflare-waf-ruleset-list outputs: - contextPath: CloudflareWAF.Ruleset.id description: The ruleset identifier. type: String - contextPath: CloudflareWAF.Ruleset.name description: The name of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.kind description: The kind of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.phase description: The phase of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.description description: The description of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.version description: The version of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.last_updated description: 'The timestamp of when the ruleset was last updated. For example, 2024-08-01T17:37:12.291474Z.' type: Date - arguments: - description: The ruleset identifier. name: ruleset_id required: true - description: The zone identifier. If provided, gets a zone-level ruleset. If not provided, gets an account-level ruleset. The value set in the instance configuration is used by default. name: zone_id description: The command retrieves a specific ruleset by ID, including its list of rules. name: cloudflare-waf-ruleset-get outputs: - contextPath: CloudflareWAF.Ruleset.id description: The ruleset identifier. type: String - contextPath: CloudflareWAF.Ruleset.name description: The name of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.kind description: The kind of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.phase description: The phase of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.description description: The description of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.version description: The version of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.last_updated description: 'The timestamp of when the ruleset was last updated. For example, 2024-08-01T17:37:12.291474Z.' type: Date - contextPath: CloudflareWAF.Ruleset.rules.id description: The rule identifier. type: String - contextPath: CloudflareWAF.Ruleset.rules.action description: The action to perform when the rule matches. type: String - contextPath: CloudflareWAF.Ruleset.rules.expression description: The filter expression for the rule. type: String - contextPath: CloudflareWAF.Ruleset.rules.description description: The description of the rule. type: String - contextPath: CloudflareWAF.Ruleset.rules.enabled description: Whether the rule is enabled. type: Boolean - contextPath: CloudflareWAF.Ruleset.rules.version description: The version of the rule. type: String - contextPath: CloudflareWAF.Ruleset.rules.ref description: The reference of the rule. type: String - arguments: - description: The name of the ruleset. name: name required: true - auto: PREDEFINED description: The kind of the ruleset. name: kind predefined: - managed - custom - root - zone required: true - auto: PREDEFINED description: The phase of the ruleset. name: phase predefined: - ddos_l4 - ddos_l7 - http_config_settings - http_custom_errors - http_log_custom_fields - http_ratelimit - http_request_cache_settings - http_request_dynamic_redirect - http_request_firewall_custom - http_request_firewall_managed - http_request_late_transform - http_request_origin - http_request_redirect - http_request_sanitize - http_request_sbfm - http_request_transform - http_response_compression - http_response_firewall_managed - http_response_headers_transform - magic_transit required: true - description: The description of the ruleset. name: description - description: 'The JSON array of rule objects to include in the ruleset. For example: [{"action": "block", "expression": "(ip.src eq 192.0.2.1)", "description": "Block bad IP"}].' name: rules - description: The Zone identifier. If provided, creates a zone-level ruleset. If not provided, creates an account-level ruleset. The value set in the instance configuration is used by default. name: zone_id description: The command creates a new ruleset at the account or zone level. name: cloudflare-waf-ruleset-create outputs: - contextPath: CloudflareWAF.Ruleset.id description: The ruleset identifier. type: String - contextPath: CloudflareWAF.Ruleset.name description: The name of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.kind description: The kind of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.phase description: The phase of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.description description: The description of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.version description: The version of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.last_updated description: 'The timestamp of when the ruleset was last updated. For example, 2024-08-01T17:37:12.291474Z.' type: Date - arguments: - description: The ruleset identifier. name: ruleset_id required: true - description: The name of the ruleset. name: name - description: The description of the ruleset. name: description - description: 'The JSON array of rule objects to set in the ruleset. This replaces all existing rules. For example: [{"action": "block", "expression": "(ip.src eq 192.0.2.1)", "description": "Block bad IP"}].' name: rules - description: The Zone identifier. If provided, updates a zone-level ruleset. If not provided, updates an account-level ruleset. The value set in the instance configuration is used by default. name: zone_id description: The command updates an existing ruleset by ID. Note that this replaces the entire ruleset configuration. name: cloudflare-waf-ruleset-update outputs: - contextPath: CloudflareWAF.Ruleset.id description: The ruleset identifier. type: String - contextPath: CloudflareWAF.Ruleset.name description: The name of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.kind description: The kind of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.phase description: The phase of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.description description: The description of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.version description: The version of the ruleset. type: String - contextPath: CloudflareWAF.Ruleset.last_updated description: 'The timestamp of when the ruleset was last updated. For example, 2024-08-01T17:37:12.291474Z.' type: Date - arguments: - description: The ruleset identifier. name: ruleset_id required: true - description: The Zone identifier. If provided, deletes a zone-level ruleset. If not provided, deletes an account-level ruleset. The value set in the instance configuration is used by default. name: zone_id description: The command deletes a ruleset by ID. name: cloudflare-waf-ruleset-delete outputs: [] dockerimage: demisto/python3:3.12.13.10404775 runonce: false script: '-' subtype: python3 type: python fromversion: 6.2.0 tests: - No tests (auto formatted)