# Advanced TCP Protection # Allowlist ## List all allowlist prefixes. `ddos_protection.advanced_tcp_protection.allowlist.list(AllowlistListParams**kwargs) -> SyncV4PagePaginationArray[AllowlistListResponse]` **get** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/allowlist` List all allowlist prefixes for an account. ### Parameters - `account_id: str` Identifier. - `direction: Optional[str]` The direction of ordering (ASC or DESC). Defaults to 'ASC'. - `order: Optional[str]` The field to order by. Defaults to 'prefix'. - `page: Optional[int]` The page number for pagination. Defaults to 1. - `per_page: Optional[int]` The number of items per page. Must be between 10 and 1000. Defaults to 25. ### Returns - `class AllowlistListResponse: …` - `id: str` The unique ID of the allowlist prefix. - `comment: str` An optional comment describing the allowlist prefix. - `created_on: datetime` The creation timestamp of the allowlist prefix. - `enabled: bool` Whether to enable the allowlist prefix into effect. Defaults to false. - `modified_on: datetime` The last modification timestamp of the allowlist prefix. - `prefix: str` The allowlist prefix in CIDR format. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.ddos_protection.advanced_tcp_protection.allowlist.list( account_id="023e105f4ecef8ad9ca31a8372d0c353", ) page = page.result[0] print(page.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "id", "comment": "comment", "created_on": "2019-12-27T18:11:19.117Z", "enabled": true, "modified_on": "2019-12-27T18:11:19.117Z", "prefix": "prefix" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ``` ## Create allowlist prefix. `ddos_protection.advanced_tcp_protection.allowlist.create(AllowlistCreateParams**kwargs) -> AllowlistCreateResponse` **post** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/allowlist` Create an allowlist prefix for an account. ### Parameters - `account_id: str` Identifier. - `comment: str` An comment describing the allowlist prefix. - `enabled: bool` Whether to enable the allowlist prefix into effect. - `prefix: str` The allowlist prefix to add in CIDR format. ### Returns - `class AllowlistCreateResponse: …` - `id: str` The unique ID of the allowlist prefix. - `comment: str` An optional comment describing the allowlist prefix. - `created_on: datetime` The creation timestamp of the allowlist prefix. - `enabled: bool` Whether to enable the allowlist prefix into effect. Defaults to false. - `modified_on: datetime` The last modification timestamp of the allowlist prefix. - `prefix: str` The allowlist prefix in CIDR format. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) allowlist = client.ddos_protection.advanced_tcp_protection.allowlist.create( account_id="023e105f4ecef8ad9ca31a8372d0c353", comment="comment", enabled=True, prefix="prefix", ) print(allowlist.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "comment": "comment", "created_on": "2019-12-27T18:11:19.117Z", "enabled": true, "modified_on": "2019-12-27T18:11:19.117Z", "prefix": "prefix" } } ``` ## Delete all allowlist prefixes. `ddos_protection.advanced_tcp_protection.allowlist.bulk_delete(AllowlistBulkDeleteParams**kwargs) -> AllowlistBulkDeleteResponse` **delete** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/allowlist` Delete all allowlist prefixes for an account. ### Parameters - `account_id: str` Identifier. ### Returns - `class AllowlistBulkDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.ddos_protection.advanced_tcp_protection.allowlist.bulk_delete( account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(response.errors) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true } ``` ## Domain Types ### Allowlist List Response - `class AllowlistListResponse: …` - `id: str` The unique ID of the allowlist prefix. - `comment: str` An optional comment describing the allowlist prefix. - `created_on: datetime` The creation timestamp of the allowlist prefix. - `enabled: bool` Whether to enable the allowlist prefix into effect. Defaults to false. - `modified_on: datetime` The last modification timestamp of the allowlist prefix. - `prefix: str` The allowlist prefix in CIDR format. ### Allowlist Create Response - `class AllowlistCreateResponse: …` - `id: str` The unique ID of the allowlist prefix. - `comment: str` An optional comment describing the allowlist prefix. - `created_on: datetime` The creation timestamp of the allowlist prefix. - `enabled: bool` Whether to enable the allowlist prefix into effect. Defaults to false. - `modified_on: datetime` The last modification timestamp of the allowlist prefix. - `prefix: str` The allowlist prefix in CIDR format. ### Allowlist Bulk Delete Response - `class AllowlistBulkDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` # Items ## Get allowlist prefix. `ddos_protection.advanced_tcp_protection.allowlist.items.get(strprefix_id, ItemGetParams**kwargs) -> ItemGetResponse` **get** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/allowlist/{prefix_id}` Get an allowlist prefix specified by the given UUID. ### Parameters - `account_id: str` Identifier. - `prefix_id: str` UUID. ### Returns - `class ItemGetResponse: …` - `id: str` The unique ID of the allowlist prefix. - `comment: str` An optional comment describing the allowlist prefix. - `created_on: datetime` The creation timestamp of the allowlist prefix. - `enabled: bool` Whether to enable the allowlist prefix into effect. Defaults to false. - `modified_on: datetime` The last modification timestamp of the allowlist prefix. - `prefix: str` The allowlist prefix in CIDR format. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) item = client.ddos_protection.advanced_tcp_protection.allowlist.items.get( prefix_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(item.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "comment": "comment", "created_on": "2019-12-27T18:11:19.117Z", "enabled": true, "modified_on": "2019-12-27T18:11:19.117Z", "prefix": "prefix" } } ``` ## Update allowlist prefix. `ddos_protection.advanced_tcp_protection.allowlist.items.edit(strprefix_id, ItemEditParams**kwargs) -> ItemEditResponse` **patch** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/allowlist/{prefix_id}` Update an allowlist prefix specified by the given UUID. ### Parameters - `account_id: str` Identifier. - `prefix_id: str` UUID. - `comment: Optional[str]` A comment describing the allowlist prefix. Optional. - `enabled: Optional[bool]` Whether to enable the allowlist prefix into effect. Optional. ### Returns - `class ItemEditResponse: …` - `id: str` The unique ID of the allowlist prefix. - `comment: str` An optional comment describing the allowlist prefix. - `created_on: datetime` The creation timestamp of the allowlist prefix. - `enabled: bool` Whether to enable the allowlist prefix into effect. Defaults to false. - `modified_on: datetime` The last modification timestamp of the allowlist prefix. - `prefix: str` The allowlist prefix in CIDR format. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.ddos_protection.advanced_tcp_protection.allowlist.items.edit( prefix_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(response.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "comment": "comment", "created_on": "2019-12-27T18:11:19.117Z", "enabled": true, "modified_on": "2019-12-27T18:11:19.117Z", "prefix": "prefix" } } ``` ## Delete allowlist prefix. `ddos_protection.advanced_tcp_protection.allowlist.items.delete(strprefix_id, ItemDeleteParams**kwargs) -> ItemDeleteResponse` **delete** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/allowlist/{prefix_id}` Delete the allowlist prefix for an account given a UUID. ### Parameters - `account_id: str` Identifier. - `prefix_id: str` UUID. ### Returns - `class ItemDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) item = client.ddos_protection.advanced_tcp_protection.allowlist.items.delete( prefix_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(item.errors) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true } ``` ## Domain Types ### Item Get Response - `class ItemGetResponse: …` - `id: str` The unique ID of the allowlist prefix. - `comment: str` An optional comment describing the allowlist prefix. - `created_on: datetime` The creation timestamp of the allowlist prefix. - `enabled: bool` Whether to enable the allowlist prefix into effect. Defaults to false. - `modified_on: datetime` The last modification timestamp of the allowlist prefix. - `prefix: str` The allowlist prefix in CIDR format. ### Item Edit Response - `class ItemEditResponse: …` - `id: str` The unique ID of the allowlist prefix. - `comment: str` An optional comment describing the allowlist prefix. - `created_on: datetime` The creation timestamp of the allowlist prefix. - `enabled: bool` Whether to enable the allowlist prefix into effect. Defaults to false. - `modified_on: datetime` The last modification timestamp of the allowlist prefix. - `prefix: str` The allowlist prefix in CIDR format. ### Item Delete Response - `class ItemDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` # Prefixes ## List all prefixes. `ddos_protection.advanced_tcp_protection.prefixes.list(PrefixListParams**kwargs) -> SyncV4PagePaginationArray[PrefixListResponse]` **get** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/prefixes` List all prefixes for an account. ### Parameters - `account_id: str` Identifier. - `direction: Optional[str]` The direction of ordering (ASC or DESC). Defaults to 'ASC'. - `order: Optional[str]` The field to order by. Defaults to 'prefix'. - `page: Optional[int]` The page number for pagination. Defaults to 1. - `per_page: Optional[int]` The number of items per page. Must be between 10 and 1000. Defaults to 25. ### Returns - `class PrefixListResponse: …` - `id: str` The unique ID of the prefix. - `comment: str` A comment describing the prefix. - `created_on: datetime` The creation timestamp of the prefix. - `excluded: bool` Whether to exclude the prefix from protection. - `modified_on: datetime` The last modification timestamp of the prefix. - `prefix: str` The prefix in CIDR format. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.ddos_protection.advanced_tcp_protection.prefixes.list( account_id="023e105f4ecef8ad9ca31a8372d0c353", ) page = page.result[0] print(page.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "id", "comment": "comment", "created_on": "2019-12-27T18:11:19.117Z", "excluded": true, "modified_on": "2019-12-27T18:11:19.117Z", "prefix": "192.0.2.0/24" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ``` ## Create prefix. `ddos_protection.advanced_tcp_protection.prefixes.create(PrefixCreateParams**kwargs) -> PrefixCreateResponse` **post** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/prefixes` Create a prefix for an account. ### Parameters - `account_id: str` Identifier. - `comment: str` A comment describing the prefix. - `excluded: bool` Whether to exclude the prefix from protection. - `prefix: str` The prefix to add in CIDR format. ### Returns - `class PrefixCreateResponse: …` - `id: str` The unique ID of the prefix. - `comment: str` A comment describing the prefix. - `created_on: datetime` The creation timestamp of the prefix. - `excluded: bool` Whether to exclude the prefix from protection. - `modified_on: datetime` The last modification timestamp of the prefix. - `prefix: str` The prefix in CIDR format. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) prefix = client.ddos_protection.advanced_tcp_protection.prefixes.create( account_id="023e105f4ecef8ad9ca31a8372d0c353", comment="comment", excluded=True, prefix="192.0.2.0/24", ) print(prefix.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "comment": "comment", "created_on": "2019-12-27T18:11:19.117Z", "excluded": true, "modified_on": "2019-12-27T18:11:19.117Z", "prefix": "192.0.2.0/24" } } ``` ## Delete all prefixes. `ddos_protection.advanced_tcp_protection.prefixes.bulk_delete(PrefixBulkDeleteParams**kwargs) -> PrefixBulkDeleteResponse` **delete** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/prefixes` Delete all prefixes for an account. ### Parameters - `account_id: str` Identifier. ### Returns - `class PrefixBulkDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.ddos_protection.advanced_tcp_protection.prefixes.bulk_delete( account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(response.errors) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true } ``` ## Create multiple prefixes. `ddos_protection.advanced_tcp_protection.prefixes.bulk_create(PrefixBulkCreateParams**kwargs) -> SyncSinglePage[PrefixBulkCreateResponse]` **post** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/prefixes/bulk` Create multiple prefixes for an account. ### Parameters - `account_id: str` Identifier. - `body: Iterable[Body]` - `comment: str` A comment describing the prefix. - `excluded: bool` Whether to exclude the prefix from protection. - `prefix: str` The prefix to add in CIDR format. ### Returns - `class PrefixBulkCreateResponse: …` - `id: str` The unique ID of the prefix. - `comment: str` A comment describing the prefix. - `created_on: datetime` The creation timestamp of the prefix. - `excluded: bool` Whether to exclude the prefix from protection. - `modified_on: datetime` The last modification timestamp of the prefix. - `prefix: str` The prefix in CIDR format. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.ddos_protection.advanced_tcp_protection.prefixes.bulk_create( account_id="023e105f4ecef8ad9ca31a8372d0c353", body=[{ "comment": "comment", "excluded": True, "prefix": "192.0.2.0/24", }], ) page = page.result[0] print(page.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "id", "comment": "comment", "created_on": "2019-12-27T18:11:19.117Z", "excluded": true, "modified_on": "2019-12-27T18:11:19.117Z", "prefix": "192.0.2.0/24" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ``` ## Domain Types ### Prefix List Response - `class PrefixListResponse: …` - `id: str` The unique ID of the prefix. - `comment: str` A comment describing the prefix. - `created_on: datetime` The creation timestamp of the prefix. - `excluded: bool` Whether to exclude the prefix from protection. - `modified_on: datetime` The last modification timestamp of the prefix. - `prefix: str` The prefix in CIDR format. ### Prefix Create Response - `class PrefixCreateResponse: …` - `id: str` The unique ID of the prefix. - `comment: str` A comment describing the prefix. - `created_on: datetime` The creation timestamp of the prefix. - `excluded: bool` Whether to exclude the prefix from protection. - `modified_on: datetime` The last modification timestamp of the prefix. - `prefix: str` The prefix in CIDR format. ### Prefix Bulk Delete Response - `class PrefixBulkDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` ### Prefix Bulk Create Response - `class PrefixBulkCreateResponse: …` - `id: str` The unique ID of the prefix. - `comment: str` A comment describing the prefix. - `created_on: datetime` The creation timestamp of the prefix. - `excluded: bool` Whether to exclude the prefix from protection. - `modified_on: datetime` The last modification timestamp of the prefix. - `prefix: str` The prefix in CIDR format. # Items ## Get prefix. `ddos_protection.advanced_tcp_protection.prefixes.items.get(strprefix_id, ItemGetParams**kwargs) -> ItemGetResponse` **get** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/prefixes/{prefix_id}` Get a prefix specified by the given UUID. ### Parameters - `account_id: str` Identifier. - `prefix_id: str` UUID. ### Returns - `class ItemGetResponse: …` - `id: str` The unique ID of the prefix. - `comment: str` A comment describing the prefix. - `created_on: datetime` The creation timestamp of the prefix. - `excluded: bool` Whether to exclude the prefix from protection. - `modified_on: datetime` The last modification timestamp of the prefix. - `prefix: str` The prefix in CIDR format. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) item = client.ddos_protection.advanced_tcp_protection.prefixes.items.get( prefix_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(item.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "comment": "comment", "created_on": "2019-12-27T18:11:19.117Z", "excluded": true, "modified_on": "2019-12-27T18:11:19.117Z", "prefix": "192.0.2.0/24" } } ``` ## Update prefix. `ddos_protection.advanced_tcp_protection.prefixes.items.edit(strprefix_id, ItemEditParams**kwargs) -> ItemEditResponse` **patch** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/prefixes/{prefix_id}` Update a prefix specified by the given UUID. ### Parameters - `account_id: str` Identifier. - `prefix_id: str` UUID. - `comment: Optional[str]` A new comment for the prefix. Optional. - `excluded: Optional[bool]` Whether to exclude the prefix from protection. Optional. ### Returns - `class ItemEditResponse: …` - `id: str` The unique ID of the prefix. - `comment: str` A comment describing the prefix. - `created_on: datetime` The creation timestamp of the prefix. - `excluded: bool` Whether to exclude the prefix from protection. - `modified_on: datetime` The last modification timestamp of the prefix. - `prefix: str` The prefix in CIDR format. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.ddos_protection.advanced_tcp_protection.prefixes.items.edit( prefix_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(response.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "comment": "comment", "created_on": "2019-12-27T18:11:19.117Z", "excluded": true, "modified_on": "2019-12-27T18:11:19.117Z", "prefix": "192.0.2.0/24" } } ``` ## Delete prefix. `ddos_protection.advanced_tcp_protection.prefixes.items.delete(strprefix_id, ItemDeleteParams**kwargs) -> ItemDeleteResponse` **delete** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/prefixes/{prefix_id}` Delete the prefix for an account given a UUID. ### Parameters - `account_id: str` Identifier. - `prefix_id: str` UUID. ### Returns - `class ItemDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) item = client.ddos_protection.advanced_tcp_protection.prefixes.items.delete( prefix_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(item.errors) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true } ``` ## Domain Types ### Item Get Response - `class ItemGetResponse: …` - `id: str` The unique ID of the prefix. - `comment: str` A comment describing the prefix. - `created_on: datetime` The creation timestamp of the prefix. - `excluded: bool` Whether to exclude the prefix from protection. - `modified_on: datetime` The last modification timestamp of the prefix. - `prefix: str` The prefix in CIDR format. ### Item Edit Response - `class ItemEditResponse: …` - `id: str` The unique ID of the prefix. - `comment: str` A comment describing the prefix. - `created_on: datetime` The creation timestamp of the prefix. - `excluded: bool` Whether to exclude the prefix from protection. - `modified_on: datetime` The last modification timestamp of the prefix. - `prefix: str` The prefix in CIDR format. ### Item Delete Response - `class ItemDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` # SYN Protection # Filters ## List all SYN Protection filters. `ddos_protection.advanced_tcp_protection.syn_protection.filters.list(FilterListParams**kwargs) -> SyncV4PagePaginationArray[FilterListResponse]` **get** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/filters` List all SYN Protection filters for an account. ### Parameters - `account_id: str` Identifier. - `direction: Optional[str]` The direction of ordering (ASC or DESC). Defaults to 'ASC'. - `mode: Optional[str]` The mode of the filters to get. Optional. Valid values: 'enabled', 'disabled', 'monitoring'. - `order: Optional[str]` The field to order by. Defaults to 'prefix'. - `page: Optional[int]` The page number for pagination. Defaults to 1. - `per_page: Optional[int]` The number of items per page. Must be between 10 and 1000. Defaults to 25. ### Returns - `class FilterListResponse: …` - `id: str` The unique ID of the expression filter. - `created_on: datetime` The creation timestamp of the expression filter. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the expression filter. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.ddos_protection.advanced_tcp_protection.syn_protection.filters.list( account_id="023e105f4ecef8ad9ca31a8372d0c353", ) page = page.result[0] print(page.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "id", "created_on": "2019-12-27T18:11:19.117Z", "expression": "ip.dst in { 192.0.2.0/24 198.51.100.0/24 } and tcp.srcport in { 80 443 10000..65535 }", "mode": "mode", "modified_on": "2019-12-27T18:11:19.117Z" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ``` ## Create a SYN Protection filter. `ddos_protection.advanced_tcp_protection.syn_protection.filters.create(FilterCreateParams**kwargs) -> FilterCreateResponse` **post** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/filters` Create a SYN Protection filter for an account. ### Parameters - `account_id: str` Identifier. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. ### Returns - `class FilterCreateResponse: …` - `id: str` The unique ID of the expression filter. - `created_on: datetime` The creation timestamp of the expression filter. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the expression filter. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) filter = client.ddos_protection.advanced_tcp_protection.syn_protection.filters.create( account_id="023e105f4ecef8ad9ca31a8372d0c353", expression="ip.dst in { 192.0.2.0/24 198.51.100.0/24 } and tcp.srcport in { 80 443 10000..65535 }", mode="mode", ) print(filter.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "created_on": "2019-12-27T18:11:19.117Z", "expression": "ip.dst in { 192.0.2.0/24 198.51.100.0/24 } and tcp.srcport in { 80 443 10000..65535 }", "mode": "mode", "modified_on": "2019-12-27T18:11:19.117Z" } } ``` ## Delete all SYN Protection filters. `ddos_protection.advanced_tcp_protection.syn_protection.filters.bulk_delete(FilterBulkDeleteParams**kwargs) -> FilterBulkDeleteResponse` **delete** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/filters` Delete all SYN Protection filters for an account. ### Parameters - `account_id: str` Identifier. ### Returns - `class FilterBulkDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.ddos_protection.advanced_tcp_protection.syn_protection.filters.bulk_delete( account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(response.errors) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true } ``` ## Domain Types ### Filter List Response - `class FilterListResponse: …` - `id: str` The unique ID of the expression filter. - `created_on: datetime` The creation timestamp of the expression filter. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the expression filter. ### Filter Create Response - `class FilterCreateResponse: …` - `id: str` The unique ID of the expression filter. - `created_on: datetime` The creation timestamp of the expression filter. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the expression filter. ### Filter Bulk Delete Response - `class FilterBulkDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` # Items ## Get SYN Protection filter. `ddos_protection.advanced_tcp_protection.syn_protection.filters.items.get(strfilter_id, ItemGetParams**kwargs) -> ItemGetResponse` **get** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/filters/{filter_id}` Get a SYN Protection filter specified by the given UUID. ### Parameters - `account_id: str` Identifier. - `filter_id: str` UUID. ### Returns - `class ItemGetResponse: …` - `id: str` The unique ID of the expression filter. - `created_on: datetime` The creation timestamp of the expression filter. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the expression filter. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) item = client.ddos_protection.advanced_tcp_protection.syn_protection.filters.items.get( filter_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(item.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "created_on": "2019-12-27T18:11:19.117Z", "expression": "ip.dst in { 192.0.2.0/24 198.51.100.0/24 } and tcp.srcport in { 80 443 10000..65535 }", "mode": "mode", "modified_on": "2019-12-27T18:11:19.117Z" } } ``` ## Update SYN Protection filter. `ddos_protection.advanced_tcp_protection.syn_protection.filters.items.edit(strfilter_id, ItemEditParams**kwargs) -> ItemEditResponse` **patch** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/filters/{filter_id}` Update a SYN Protection filter specified by the given UUID. ### Parameters - `account_id: str` Identifier. - `filter_id: str` UUID. - `expression: Optional[str]` The new filter expression. Optional. - `mode: Optional[str]` The new mode for the filter. Optional. Must be one of 'enabled', 'disabled', 'monitoring'. ### Returns - `class ItemEditResponse: …` - `id: str` The unique ID of the expression filter. - `created_on: datetime` The creation timestamp of the expression filter. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the expression filter. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.ddos_protection.advanced_tcp_protection.syn_protection.filters.items.edit( filter_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(response.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "created_on": "2019-12-27T18:11:19.117Z", "expression": "ip.dst in { 192.0.2.0/24 198.51.100.0/24 } and tcp.srcport in { 80 443 10000..65535 }", "mode": "mode", "modified_on": "2019-12-27T18:11:19.117Z" } } ``` ## Delete SYN Protection filter. `ddos_protection.advanced_tcp_protection.syn_protection.filters.items.delete(strfilter_id, ItemDeleteParams**kwargs) -> ItemDeleteResponse` **delete** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/filters/{filter_id}` Delete a SYN Protection filter specified by the given UUID. ### Parameters - `account_id: str` Identifier. - `filter_id: str` UUID. ### Returns - `class ItemDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) item = client.ddos_protection.advanced_tcp_protection.syn_protection.filters.items.delete( filter_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(item.errors) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true } ``` ## Domain Types ### Item Get Response - `class ItemGetResponse: …` - `id: str` The unique ID of the expression filter. - `created_on: datetime` The creation timestamp of the expression filter. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the expression filter. ### Item Edit Response - `class ItemEditResponse: …` - `id: str` The unique ID of the expression filter. - `created_on: datetime` The creation timestamp of the expression filter. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the expression filter. ### Item Delete Response - `class ItemDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` # Rules ## List all SYN Protection rules. `ddos_protection.advanced_tcp_protection.syn_protection.rules.list(RuleListParams**kwargs) -> SyncV4PagePaginationArray[RuleListResponse]` **get** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/rules` List all SYN Protection rules for an account. ### Parameters - `account_id: str` Identifier. - `direction: Optional[str]` The direction of ordering (ASC or DESC). Defaults to 'ASC'. - `order: Optional[str]` The field to order by. Defaults to 'prefix'. - `page: Optional[int]` The page number for pagination. Defaults to 1. - `per_page: Optional[int]` The number of items per page. Must be between 10 and 1000. Defaults to 25. ### Returns - `class RuleListResponse: …` - `id: str` The unique ID of the SYN Protection rule. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `created_on: datetime` The creation timestamp of the SYN Protection rule. - `mitigation_type: str` The type of mitigation for SYN Protection. Must be one of 'challenge' or 'retransmit'. - `mode: str` The mode for SYN Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the SYN Protection rule. - `name: str` The name of the SYN Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the SYN Protection rule. Must be one of 'global', 'region', or 'datacenter'. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.ddos_protection.advanced_tcp_protection.syn_protection.rules.list( account_id="023e105f4ecef8ad9ca31a8372d0c353", ) page = page.result[0] print(page.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "id", "burst_sensitivity": "burst_sensitivity", "created_on": "2019-12-27T18:11:19.117Z", "mitigation_type": "mitigation_type", "mode": "mode", "modified_on": "2019-12-27T18:11:19.117Z", "name": "name", "rate_sensitivity": "rate_sensitivity", "scope": "scope" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ``` ## Create SYN Protection rule. `ddos_protection.advanced_tcp_protection.syn_protection.rules.create(RuleCreateParams**kwargs) -> RuleCreateResponse` **post** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/rules` Create a SYN Protection rule for an account. ### Parameters - `account_id: str` Identifier. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `mode: str` The mode for SYN Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `name: str` The name of the SYN Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the SYN Protection rule. Must be one of 'global', 'region', or 'datacenter'. - `mitigation_type: Optional[str]` The type of mitigation. Must be one of 'challenge' or 'retransmit'. Optional. Defaults to 'challenge'. ### Returns - `class RuleCreateResponse: …` - `id: str` The unique ID of the SYN Protection rule. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `created_on: datetime` The creation timestamp of the SYN Protection rule. - `mitigation_type: str` The type of mitigation for SYN Protection. Must be one of 'challenge' or 'retransmit'. - `mode: str` The mode for SYN Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the SYN Protection rule. - `name: str` The name of the SYN Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the SYN Protection rule. Must be one of 'global', 'region', or 'datacenter'. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) rule = client.ddos_protection.advanced_tcp_protection.syn_protection.rules.create( account_id="023e105f4ecef8ad9ca31a8372d0c353", burst_sensitivity="burst_sensitivity", mode="mode", name="name", rate_sensitivity="rate_sensitivity", scope="scope", ) print(rule.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "burst_sensitivity": "burst_sensitivity", "created_on": "2019-12-27T18:11:19.117Z", "mitigation_type": "mitigation_type", "mode": "mode", "modified_on": "2019-12-27T18:11:19.117Z", "name": "name", "rate_sensitivity": "rate_sensitivity", "scope": "scope" } } ``` ## Delete all SYN Protection rules. `ddos_protection.advanced_tcp_protection.syn_protection.rules.bulk_delete(RuleBulkDeleteParams**kwargs) -> RuleBulkDeleteResponse` **delete** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/rules` Delete all SYN Protection rules for an account. ### Parameters - `account_id: str` Identifier. ### Returns - `class RuleBulkDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.ddos_protection.advanced_tcp_protection.syn_protection.rules.bulk_delete( account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(response.errors) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true } ``` ## Domain Types ### Rule List Response - `class RuleListResponse: …` - `id: str` The unique ID of the SYN Protection rule. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `created_on: datetime` The creation timestamp of the SYN Protection rule. - `mitigation_type: str` The type of mitigation for SYN Protection. Must be one of 'challenge' or 'retransmit'. - `mode: str` The mode for SYN Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the SYN Protection rule. - `name: str` The name of the SYN Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the SYN Protection rule. Must be one of 'global', 'region', or 'datacenter'. ### Rule Create Response - `class RuleCreateResponse: …` - `id: str` The unique ID of the SYN Protection rule. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `created_on: datetime` The creation timestamp of the SYN Protection rule. - `mitigation_type: str` The type of mitigation for SYN Protection. Must be one of 'challenge' or 'retransmit'. - `mode: str` The mode for SYN Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the SYN Protection rule. - `name: str` The name of the SYN Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the SYN Protection rule. Must be one of 'global', 'region', or 'datacenter'. ### Rule Bulk Delete Response - `class RuleBulkDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` # Items ## Get SYN Protection rule. `ddos_protection.advanced_tcp_protection.syn_protection.rules.items.get(strrule_id, ItemGetParams**kwargs) -> ItemGetResponse` **get** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/rules/{rule_id}` Get a SYN Protection rule specified by the given UUID. ### Parameters - `account_id: str` Identifier. - `rule_id: str` UUID. ### Returns - `class ItemGetResponse: …` - `id: str` The unique ID of the SYN Protection rule. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `created_on: datetime` The creation timestamp of the SYN Protection rule. - `mitigation_type: str` The type of mitigation for SYN Protection. Must be one of 'challenge' or 'retransmit'. - `mode: str` The mode for SYN Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the SYN Protection rule. - `name: str` The name of the SYN Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the SYN Protection rule. Must be one of 'global', 'region', or 'datacenter'. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) item = client.ddos_protection.advanced_tcp_protection.syn_protection.rules.items.get( rule_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(item.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "burst_sensitivity": "burst_sensitivity", "created_on": "2019-12-27T18:11:19.117Z", "mitigation_type": "mitigation_type", "mode": "mode", "modified_on": "2019-12-27T18:11:19.117Z", "name": "name", "rate_sensitivity": "rate_sensitivity", "scope": "scope" } } ``` ## Update SYN Protection rule. `ddos_protection.advanced_tcp_protection.syn_protection.rules.items.edit(strrule_id, ItemEditParams**kwargs) -> ItemEditResponse` **patch** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/rules/{rule_id}` Update a SYN Protection rule specified by the given UUID. ### Parameters - `account_id: str` Identifier. - `rule_id: str` UUID. - `burst_sensitivity: Optional[str]` The new burst sensitivity. Optional. Must be one of 'low', 'medium', 'high'. - `mitigation_type: Optional[str]` The new mitigation type. Optional. Must be one of 'challenge' or 'retransmit'. - `mode: Optional[str]` The new mode for SYN Protection. Optional. Must be one of 'enabled', 'disabled', 'monitoring'. - `rate_sensitivity: Optional[str]` The new rate sensitivity. Optional. Must be one of 'low', 'medium', 'high'. ### Returns - `class ItemEditResponse: …` - `id: str` The unique ID of the SYN Protection rule. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `created_on: datetime` The creation timestamp of the SYN Protection rule. - `mitigation_type: str` The type of mitigation for SYN Protection. Must be one of 'challenge' or 'retransmit'. - `mode: str` The mode for SYN Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the SYN Protection rule. - `name: str` The name of the SYN Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the SYN Protection rule. Must be one of 'global', 'region', or 'datacenter'. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.ddos_protection.advanced_tcp_protection.syn_protection.rules.items.edit( rule_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(response.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "burst_sensitivity": "burst_sensitivity", "created_on": "2019-12-27T18:11:19.117Z", "mitigation_type": "mitigation_type", "mode": "mode", "modified_on": "2019-12-27T18:11:19.117Z", "name": "name", "rate_sensitivity": "rate_sensitivity", "scope": "scope" } } ``` ## Delete SYN Protection rule. `ddos_protection.advanced_tcp_protection.syn_protection.rules.items.delete(strrule_id, ItemDeleteParams**kwargs) -> ItemDeleteResponse` **delete** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/rules/{rule_id}` Delete a SYN Protection rule specified by the given UUID. ### Parameters - `account_id: str` Identifier. - `rule_id: str` UUID. ### Returns - `class ItemDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) item = client.ddos_protection.advanced_tcp_protection.syn_protection.rules.items.delete( rule_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(item.errors) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true } ``` ## Domain Types ### Item Get Response - `class ItemGetResponse: …` - `id: str` The unique ID of the SYN Protection rule. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `created_on: datetime` The creation timestamp of the SYN Protection rule. - `mitigation_type: str` The type of mitigation for SYN Protection. Must be one of 'challenge' or 'retransmit'. - `mode: str` The mode for SYN Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the SYN Protection rule. - `name: str` The name of the SYN Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the SYN Protection rule. Must be one of 'global', 'region', or 'datacenter'. ### Item Edit Response - `class ItemEditResponse: …` - `id: str` The unique ID of the SYN Protection rule. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `created_on: datetime` The creation timestamp of the SYN Protection rule. - `mitigation_type: str` The type of mitigation for SYN Protection. Must be one of 'challenge' or 'retransmit'. - `mode: str` The mode for SYN Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the SYN Protection rule. - `name: str` The name of the SYN Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the SYN Protection rule. Must be one of 'global', 'region', or 'datacenter'. ### Item Delete Response - `class ItemDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` # TCP Flow Protection # Filters ## List all TCP Flow Protection filters. `ddos_protection.advanced_tcp_protection.tcp_flow_protection.filters.list(FilterListParams**kwargs) -> SyncV4PagePaginationArray[FilterListResponse]` **get** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/filters` List all TCP Flow Protection filters for an account. ### Parameters - `account_id: str` Identifier. - `direction: Optional[str]` The direction of ordering (ASC or DESC). Defaults to 'ASC'. - `mode: Optional[str]` The mode of the filters to get. Optional. Valid values: 'enabled', 'disabled', 'monitoring'. - `order: Optional[str]` The field to order by. Defaults to 'prefix'. - `page: Optional[int]` The page number for pagination. Defaults to 1. - `per_page: Optional[int]` The number of items per page. Must be between 10 and 1000. Defaults to 25. ### Returns - `class FilterListResponse: …` - `id: str` The unique ID of the expression filter. - `created_on: datetime` The creation timestamp of the expression filter. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the expression filter. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.ddos_protection.advanced_tcp_protection.tcp_flow_protection.filters.list( account_id="023e105f4ecef8ad9ca31a8372d0c353", ) page = page.result[0] print(page.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "id", "created_on": "2019-12-27T18:11:19.117Z", "expression": "ip.dst in { 192.0.2.0/24 198.51.100.0/24 } and tcp.srcport in { 80 443 10000..65535 }", "mode": "mode", "modified_on": "2019-12-27T18:11:19.117Z" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ``` ## Create a TCP Flow Protection filter. `ddos_protection.advanced_tcp_protection.tcp_flow_protection.filters.create(FilterCreateParams**kwargs) -> FilterCreateResponse` **post** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/filters` Create a TCP Flow Protection filter for an account. ### Parameters - `account_id: str` Identifier. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. ### Returns - `class FilterCreateResponse: …` - `id: str` The unique ID of the expression filter. - `created_on: datetime` The creation timestamp of the expression filter. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the expression filter. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) filter = client.ddos_protection.advanced_tcp_protection.tcp_flow_protection.filters.create( account_id="023e105f4ecef8ad9ca31a8372d0c353", expression="ip.dst in { 192.0.2.0/24 198.51.100.0/24 } and tcp.srcport in { 80 443 10000..65535 }", mode="mode", ) print(filter.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "created_on": "2019-12-27T18:11:19.117Z", "expression": "ip.dst in { 192.0.2.0/24 198.51.100.0/24 } and tcp.srcport in { 80 443 10000..65535 }", "mode": "mode", "modified_on": "2019-12-27T18:11:19.117Z" } } ``` ## Delete all TCP Flow Protection filters. `ddos_protection.advanced_tcp_protection.tcp_flow_protection.filters.bulk_delete(FilterBulkDeleteParams**kwargs) -> FilterBulkDeleteResponse` **delete** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/filters` Delete all TCP Flow Protection filters for an account. ### Parameters - `account_id: str` Identifier. ### Returns - `class FilterBulkDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.ddos_protection.advanced_tcp_protection.tcp_flow_protection.filters.bulk_delete( account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(response.errors) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true } ``` ## Domain Types ### Filter List Response - `class FilterListResponse: …` - `id: str` The unique ID of the expression filter. - `created_on: datetime` The creation timestamp of the expression filter. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the expression filter. ### Filter Create Response - `class FilterCreateResponse: …` - `id: str` The unique ID of the expression filter. - `created_on: datetime` The creation timestamp of the expression filter. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the expression filter. ### Filter Bulk Delete Response - `class FilterBulkDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` # Items ## Get TCP Flow Protection filter. `ddos_protection.advanced_tcp_protection.tcp_flow_protection.filters.items.get(strfilter_id, ItemGetParams**kwargs) -> ItemGetResponse` **get** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/filters/{filter_id}` Get a TCP Flow Protection filter specified by the given UUID. ### Parameters - `account_id: str` Identifier. - `filter_id: str` UUID. ### Returns - `class ItemGetResponse: …` - `id: str` The unique ID of the expression filter. - `created_on: datetime` The creation timestamp of the expression filter. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the expression filter. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) item = client.ddos_protection.advanced_tcp_protection.tcp_flow_protection.filters.items.get( filter_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(item.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "created_on": "2019-12-27T18:11:19.117Z", "expression": "ip.dst in { 192.0.2.0/24 198.51.100.0/24 } and tcp.srcport in { 80 443 10000..65535 }", "mode": "mode", "modified_on": "2019-12-27T18:11:19.117Z" } } ``` ## Update TCP Flow Protection filter. `ddos_protection.advanced_tcp_protection.tcp_flow_protection.filters.items.edit(strfilter_id, ItemEditParams**kwargs) -> ItemEditResponse` **patch** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/filters/{filter_id}` Update a TCP Flow Protection filter specified by the given UUID. ### Parameters - `account_id: str` Identifier. - `filter_id: str` UUID. - `expression: Optional[str]` The new filter expression. Optional. - `mode: Optional[str]` The new mode for the filter. Optional. Must be one of 'enabled', 'disabled', 'monitoring'. ### Returns - `class ItemEditResponse: …` - `id: str` The unique ID of the expression filter. - `created_on: datetime` The creation timestamp of the expression filter. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the expression filter. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.ddos_protection.advanced_tcp_protection.tcp_flow_protection.filters.items.edit( filter_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(response.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "created_on": "2019-12-27T18:11:19.117Z", "expression": "ip.dst in { 192.0.2.0/24 198.51.100.0/24 } and tcp.srcport in { 80 443 10000..65535 }", "mode": "mode", "modified_on": "2019-12-27T18:11:19.117Z" } } ``` ## Delete TCP Flow Protection filter. `ddos_protection.advanced_tcp_protection.tcp_flow_protection.filters.items.delete(strfilter_id, ItemDeleteParams**kwargs) -> ItemDeleteResponse` **delete** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/filters/{filter_id}` Delete a TCP Flow Protection filter specified by the given UUID. ### Parameters - `account_id: str` Identifier. - `filter_id: str` UUID. ### Returns - `class ItemDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) item = client.ddos_protection.advanced_tcp_protection.tcp_flow_protection.filters.items.delete( filter_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(item.errors) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true } ``` ## Domain Types ### Item Get Response - `class ItemGetResponse: …` - `id: str` The unique ID of the expression filter. - `created_on: datetime` The creation timestamp of the expression filter. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the expression filter. ### Item Edit Response - `class ItemEditResponse: …` - `id: str` The unique ID of the expression filter. - `created_on: datetime` The creation timestamp of the expression filter. - `expression: str` The filter expression. - `mode: str` The filter's mode. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the expression filter. ### Item Delete Response - `class ItemDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` # Rules ## List all TCP Flow Protection rules. `ddos_protection.advanced_tcp_protection.tcp_flow_protection.rules.list(RuleListParams**kwargs) -> SyncV4PagePaginationArray[RuleListResponse]` **get** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/rules` List all TCP Flow Protection rules for an account. ### Parameters - `account_id: str` Identifier. - `direction: Optional[str]` The direction of ordering (ASC or DESC). Defaults to 'ASC'. - `order: Optional[str]` The field to order by. Defaults to 'prefix'. - `page: Optional[int]` The page number for pagination. Defaults to 1. - `per_page: Optional[int]` The number of items per page. Must be between 10 and 1000. Defaults to 25. ### Returns - `class RuleListResponse: …` - `id: str` The unique ID of the TCP Flow Protection rule. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `created_on: datetime` The creation timestamp of the TCP Flow Protection rule. - `mode: str` The mode for TCP Flow Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the TCP Flow Protection rule. - `name: str` The name of the TCP Flow Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the TCP Flow Protection rule. Must be one of 'global', 'region', or 'datacenter'. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) page = client.ddos_protection.advanced_tcp_protection.tcp_flow_protection.rules.list( account_id="023e105f4ecef8ad9ca31a8372d0c353", ) page = page.result[0] print(page.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": [ { "id": "id", "burst_sensitivity": "burst_sensitivity", "created_on": "2019-12-27T18:11:19.117Z", "mode": "mode", "modified_on": "2019-12-27T18:11:19.117Z", "name": "name", "rate_sensitivity": "rate_sensitivity", "scope": "scope" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ``` ## Create TCP Flow Protection rule. `ddos_protection.advanced_tcp_protection.tcp_flow_protection.rules.create(RuleCreateParams**kwargs) -> RuleCreateResponse` **post** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/rules` Create a TCP Flow Protection rule for an account. ### Parameters - `account_id: str` Identifier. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `mode: str` The mode for the TCP Flow Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `name: str` The name of the TCP Flow Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the TCP Flow Protection rule. ### Returns - `class RuleCreateResponse: …` - `id: str` The unique ID of the TCP Flow Protection rule. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `created_on: datetime` The creation timestamp of the TCP Flow Protection rule. - `mode: str` The mode for TCP Flow Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the TCP Flow Protection rule. - `name: str` The name of the TCP Flow Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the TCP Flow Protection rule. Must be one of 'global', 'region', or 'datacenter'. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) rule = client.ddos_protection.advanced_tcp_protection.tcp_flow_protection.rules.create( account_id="023e105f4ecef8ad9ca31a8372d0c353", burst_sensitivity="burst_sensitivity", mode="mode", name="name", rate_sensitivity="rate_sensitivity", scope="scope", ) print(rule.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "burst_sensitivity": "burst_sensitivity", "created_on": "2019-12-27T18:11:19.117Z", "mode": "mode", "modified_on": "2019-12-27T18:11:19.117Z", "name": "name", "rate_sensitivity": "rate_sensitivity", "scope": "scope" } } ``` ## Delete all TCP Flow Protection rules. `ddos_protection.advanced_tcp_protection.tcp_flow_protection.rules.bulk_delete(RuleBulkDeleteParams**kwargs) -> RuleBulkDeleteResponse` **delete** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/rules` Delete all TCP Flow Protection rules for an account. ### Parameters - `account_id: str` Identifier. ### Returns - `class RuleBulkDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.ddos_protection.advanced_tcp_protection.tcp_flow_protection.rules.bulk_delete( account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(response.errors) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true } ``` ## Domain Types ### Rule List Response - `class RuleListResponse: …` - `id: str` The unique ID of the TCP Flow Protection rule. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `created_on: datetime` The creation timestamp of the TCP Flow Protection rule. - `mode: str` The mode for TCP Flow Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the TCP Flow Protection rule. - `name: str` The name of the TCP Flow Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the TCP Flow Protection rule. Must be one of 'global', 'region', or 'datacenter'. ### Rule Create Response - `class RuleCreateResponse: …` - `id: str` The unique ID of the TCP Flow Protection rule. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `created_on: datetime` The creation timestamp of the TCP Flow Protection rule. - `mode: str` The mode for TCP Flow Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the TCP Flow Protection rule. - `name: str` The name of the TCP Flow Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the TCP Flow Protection rule. Must be one of 'global', 'region', or 'datacenter'. ### Rule Bulk Delete Response - `class RuleBulkDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` # Items ## Get TCP Flow Protection rule. `ddos_protection.advanced_tcp_protection.tcp_flow_protection.rules.items.get(strrule_id, ItemGetParams**kwargs) -> ItemGetResponse` **get** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/rules/{rule_id}` Get a TCP Flow Protection rule specified by the given UUID. ### Parameters - `account_id: str` Identifier. - `rule_id: str` UUID. ### Returns - `class ItemGetResponse: …` - `id: str` The unique ID of the TCP Flow Protection rule. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `created_on: datetime` The creation timestamp of the TCP Flow Protection rule. - `mode: str` The mode for TCP Flow Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the TCP Flow Protection rule. - `name: str` The name of the TCP Flow Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the TCP Flow Protection rule. Must be one of 'global', 'region', or 'datacenter'. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) item = client.ddos_protection.advanced_tcp_protection.tcp_flow_protection.rules.items.get( rule_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(item.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "burst_sensitivity": "burst_sensitivity", "created_on": "2019-12-27T18:11:19.117Z", "mode": "mode", "modified_on": "2019-12-27T18:11:19.117Z", "name": "name", "rate_sensitivity": "rate_sensitivity", "scope": "scope" } } ``` ## Update TCP Flow Protection rule. `ddos_protection.advanced_tcp_protection.tcp_flow_protection.rules.items.edit(strrule_id, ItemEditParams**kwargs) -> ItemEditResponse` **patch** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/rules/{rule_id}` Update a TCP Flow Protection rule specified by the given UUID. ### Parameters - `account_id: str` Identifier. - `rule_id: str` UUID. - `burst_sensitivity: Optional[str]` The new burst sensitivity. Optional. Must be one of 'low', 'medium', 'high'. - `mode: Optional[str]` The new mode for TCP Flow Protection. Optional. Must be one of 'enabled', 'disabled', 'monitoring'. - `rate_sensitivity: Optional[str]` The new rate sensitivity. Optional. Must be one of 'low', 'medium', 'high'. ### Returns - `class ItemEditResponse: …` - `id: str` The unique ID of the TCP Flow Protection rule. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `created_on: datetime` The creation timestamp of the TCP Flow Protection rule. - `mode: str` The mode for TCP Flow Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the TCP Flow Protection rule. - `name: str` The name of the TCP Flow Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the TCP Flow Protection rule. Must be one of 'global', 'region', or 'datacenter'. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.ddos_protection.advanced_tcp_protection.tcp_flow_protection.rules.items.edit( rule_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(response.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "id", "burst_sensitivity": "burst_sensitivity", "created_on": "2019-12-27T18:11:19.117Z", "mode": "mode", "modified_on": "2019-12-27T18:11:19.117Z", "name": "name", "rate_sensitivity": "rate_sensitivity", "scope": "scope" } } ``` ## Delete TCP Flow Protection rule. `ddos_protection.advanced_tcp_protection.tcp_flow_protection.rules.items.delete(strrule_id, ItemDeleteParams**kwargs) -> ItemDeleteResponse` **delete** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/rules/{rule_id}` Delete a TCP Flow Protection rule specified by the given UUID. ### Parameters - `account_id: str` Identifier. - `rule_id: str` UUID. ### Returns - `class ItemDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) item = client.ddos_protection.advanced_tcp_protection.tcp_flow_protection.rules.items.delete( rule_id="f174e90a-fafe-4643-bbbc-4a0ed4fc8415", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(item.errors) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true } ``` ## Domain Types ### Item Get Response - `class ItemGetResponse: …` - `id: str` The unique ID of the TCP Flow Protection rule. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `created_on: datetime` The creation timestamp of the TCP Flow Protection rule. - `mode: str` The mode for TCP Flow Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the TCP Flow Protection rule. - `name: str` The name of the TCP Flow Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the TCP Flow Protection rule. Must be one of 'global', 'region', or 'datacenter'. ### Item Edit Response - `class ItemEditResponse: …` - `id: str` The unique ID of the TCP Flow Protection rule. - `burst_sensitivity: str` The burst sensitivity. Must be one of 'low', 'medium', 'high'. - `created_on: datetime` The creation timestamp of the TCP Flow Protection rule. - `mode: str` The mode for TCP Flow Protection. Must be one of 'enabled', 'disabled', 'monitoring'. - `modified_on: datetime` The last modification timestamp of the TCP Flow Protection rule. - `name: str` The name of the TCP Flow Protection rule. Value is relative to the 'scope' setting. For 'global' scope, name should be 'global'. For either the 'region' or 'datacenter' scope, name should be the actual name of the region or datacenter, e.g., 'wnam' or 'lax'. - `rate_sensitivity: str` The rate sensitivity. Must be one of 'low', 'medium', 'high'. - `scope: str` The scope for the TCP Flow Protection rule. Must be one of 'global', 'region', or 'datacenter'. ### Item Delete Response - `class ItemDeleteResponse: …` - `errors: List[Error]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[ErrorSource]` - `pointer: Optional[str]` - `messages: List[Message]` - `code: int` - `message: str` - `documentation_url: Optional[str]` - `source: Optional[MessageSource]` - `pointer: Optional[str]` - `success: Literal[true]` Whether the API call was successful. - `true` # Status ## Get protection status. `ddos_protection.advanced_tcp_protection.status.get(StatusGetParams**kwargs) -> StatusGetResponse` **get** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_protection_status` Get the protection status of the account. ### Parameters - `account_id: str` Identifier. ### Returns - `class StatusGetResponse: …` - `enabled: bool` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) status = client.ddos_protection.advanced_tcp_protection.status.get( account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(status.enabled) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "enabled": true } } ``` ## Update protection status. `ddos_protection.advanced_tcp_protection.status.edit(StatusEditParams**kwargs) -> StatusEditResponse` **patch** `/accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_protection_status` Update the protection status of the account. ### Parameters - `account_id: str` Identifier. - `enabled: bool` Enables or disables protection. ### Returns - `class StatusEditResponse: …` - `enabled: bool` ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) response = client.ddos_protection.advanced_tcp_protection.status.edit( account_id="023e105f4ecef8ad9ca31a8372d0c353", enabled=True, ) print(response.enabled) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "enabled": true } } ``` ## Domain Types ### Status Get Response - `class StatusGetResponse: …` - `enabled: bool` ### Status Edit Response - `class StatusEditResponse: …` - `enabled: bool`