# AI Security ## Get AI Security for Apps Status `ai_security.get(AISecurityGetParams**kwargs) -> AISecurityGetResponse` **get** `/zones/{zone_id}/ai-security/settings` Get whether AI Security for Apps is enabled or disabled for a zone. ### Parameters - `zone_id: str` Defines the zone. ### Returns - `class AISecurityGetResponse: …` AI Security for Apps enablement status for a zone. - `enabled: Optional[bool]` Whether AI Security for Apps is enabled on the zone. ### 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 ) ai_security = client.ai_security.get( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(ai_security.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" } } ], "result": { "enabled": true }, "success": true } ``` ## Set AI Security for Apps Status `ai_security.update(AISecurityUpdateParams**kwargs) -> AISecurityUpdateResponse` **put** `/zones/{zone_id}/ai-security/settings` Enable or disable AI Security for Apps for a zone. Changes can take up to a minute to propagate to the zone. ### Parameters - `zone_id: str` Defines the zone. - `enabled: Optional[bool]` Whether AI Security for Apps is enabled on the zone. ### Returns - `class AISecurityUpdateResponse: …` AI Security for Apps enablement status for a zone. - `enabled: Optional[bool]` Whether AI Security for Apps is enabled on the zone. ### 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 ) ai_security = client.ai_security.update( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(ai_security.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" } } ], "result": { "enabled": true }, "success": true } ``` ## Domain Types ### AI Security Get Response - `class AISecurityGetResponse: …` AI Security for Apps enablement status for a zone. - `enabled: Optional[bool]` Whether AI Security for Apps is enabled on the zone. ### AI Security Update Response - `class AISecurityUpdateResponse: …` AI Security for Apps enablement status for a zone. - `enabled: Optional[bool]` Whether AI Security for Apps is enabled on the zone. # Custom Topics ## Get AI Security for Apps Custom Topics `ai_security.custom_topics.get(CustomTopicGetParams**kwargs) -> CustomTopicGetResponse` **get** `/zones/{zone_id}/ai-security/custom-topics` Get the AI Security for Apps custom topic categories for a zone. ### Parameters - `zone_id: str` Defines the zone. ### Returns - `class CustomTopicGetResponse: …` - `topics: Optional[List[Topic]]` Custom topic categories for AI Security for Apps content detection. - `label: str` Unique label identifier. Must contain only lowercase letters (a–z), digits (0–9), and hyphens. - `topic: str` Description of the topic category. Must contain only printable ASCII characters. ### 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 ) custom_topic = client.ai_security.custom_topics.get( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(custom_topic.topics) ``` #### 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" } } ], "result": { "topics": [ { "label": "credit-cards", "topic": "credit card numbers" } ] }, "success": true } ``` ## Set AI Security for Apps Custom Topics `ai_security.custom_topics.update(CustomTopicUpdateParams**kwargs) -> CustomTopicUpdateResponse` **put** `/zones/{zone_id}/ai-security/custom-topics` Set the AI Security for Apps custom topic categories for a zone. A maximum of 20 custom topics can be configured per zone. Each topic label must be 2–20 characters using only lowercase letters (a–z), digits (0–9), and hyphens. Each topic description must be 2–50 printable ASCII characters. Changes can take up to a minute to propagate to the zone. ### Parameters - `zone_id: str` Defines the zone. - `topics: Optional[Iterable[Topic]]` Custom topic categories for AI Security for Apps content detection. - `label: str` Unique label identifier. Must contain only lowercase letters (a–z), digits (0–9), and hyphens. - `topic: str` Description of the topic category. Must contain only printable ASCII characters. ### Returns - `class CustomTopicUpdateResponse: …` - `topics: Optional[List[Topic]]` Custom topic categories for AI Security for Apps content detection. - `label: str` Unique label identifier. Must contain only lowercase letters (a–z), digits (0–9), and hyphens. - `topic: str` Description of the topic category. Must contain only printable ASCII characters. ### 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 ) custom_topic = client.ai_security.custom_topics.update( zone_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(custom_topic.topics) ``` #### 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" } } ], "result": { "topics": [ { "label": "credit-cards", "topic": "credit card numbers" } ] }, "success": true } ``` ## Domain Types ### Custom Topic Get Response - `class CustomTopicGetResponse: …` - `topics: Optional[List[Topic]]` Custom topic categories for AI Security for Apps content detection. - `label: str` Unique label identifier. Must contain only lowercase letters (a–z), digits (0–9), and hyphens. - `topic: str` Description of the topic category. Must contain only printable ASCII characters. ### Custom Topic Update Response - `class CustomTopicUpdateResponse: …` - `topics: Optional[List[Topic]]` Custom topic categories for AI Security for Apps content detection. - `label: str` Unique label identifier. Must contain only lowercase letters (a–z), digits (0–9), and hyphens. - `topic: str` Description of the topic category. Must contain only printable ASCII characters.