# Insights ## Retrieves Security Center Insights `security_center.insights.list(InsightListParams**kwargs) -> SyncV4PagePagination[Optional[InsightListResponse]]` **get** `/{accounts_or_zones}/{account_or_zone_id}/security-center/insights` Lists all Security Center insights for the account or zone, showing security findings and recommendations. ### Parameters - `account_id: Optional[str]` The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `zone_id: Optional[str]` The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - `dismissed: Optional[bool]` - `issue_class: Optional[Sequence[str]]` - `issue_class_neq: Optional[Sequence[str]]` - `issue_type: Optional[List[IssueType]]` - `"compliance_violation"` - `"email_security"` - `"exposed_infrastructure"` - `"insecure_configuration"` - `"weak_authentication"` - `"configuration_suggestion"` - `issue_type_neq: Optional[List[IssueType]]` - `"compliance_violation"` - `"email_security"` - `"exposed_infrastructure"` - `"insecure_configuration"` - `"weak_authentication"` - `"configuration_suggestion"` - `page: Optional[int]` Specifies the current page within paginated list of results. - `per_page: Optional[int]` Sets the number of results per page of results. - `product: Optional[Sequence[str]]` - `product_neq: Optional[Sequence[str]]` - `severity: Optional[List[SeverityQueryParam]]` - `"low"` - `"moderate"` - `"critical"` - `severity_neq: Optional[List[SeverityQueryParam]]` - `"low"` - `"moderate"` - `"critical"` - `subject: Optional[Sequence[str]]` - `subject_neq: Optional[Sequence[str]]` ### Returns - `class InsightListResponse: …` - `count: Optional[int]` Indicates the total number of results. - `issues: Optional[List[Issue]]` - `id: Optional[str]` - `dismissed: Optional[bool]` - `has_extended_context: Optional[bool]` Indicates whether the insight has a large payload that requires fetching via the context endpoint. - `issue_class: Optional[str]` - `issue_type: Optional[IssueType]` - `"compliance_violation"` - `"email_security"` - `"exposed_infrastructure"` - `"insecure_configuration"` - `"weak_authentication"` - `"configuration_suggestion"` - `payload: Optional[IssuePayload]` - `detection_method: Optional[str]` Describes the method used to detect insight. - `zone_tag: Optional[str]` - `resolve_link: Optional[str]` - `resolve_text: Optional[str]` - `severity: Optional[Literal["Low", "Moderate", "Critical"]]` - `"Low"` - `"Moderate"` - `"Critical"` - `since: Optional[datetime]` - `status: Optional[Literal["active", "resolved"]]` The current status of the insight. - `"active"` - `"resolved"` - `subject: Optional[str]` - `timestamp: Optional[datetime]` - `user_classification: Optional[Literal["false_positive", "accept_risk", "other"]]` User-defined classification for the insight. Can be 'false_positive', 'accept_risk', 'other', or null. - `"false_positive"` - `"accept_risk"` - `"other"` - `page: Optional[int]` Specifies the current page within paginated list of results. - `per_page: Optional[int]` Sets the number of results per page of results. ### 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.security_center.insights.list( account_id="account_id", ) page = page.result.items[0] print(page.count) ``` #### 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": { "count": 1, "issues": [ { "id": "id", "dismissed": false, "has_extended_context": false, "issue_class": "always_use_https_not_enabled", "issue_type": "compliance_violation", "payload": { "detection_method": "We detected security rules referencing multiple IP addresses directly in the rules.", "zone_tag": "zone_tag" }, "resolve_link": "resolve_link", "resolve_text": "resolve_text", "severity": "Low", "since": "2019-12-27T18:11:19.117Z", "status": "active", "subject": "example.com", "timestamp": "2019-12-27T18:11:19.117Z", "user_classification": "false_positive" } ], "page": 1, "per_page": 25 } } ``` ## Archives Security Center Insight `security_center.insights.dismiss(strissue_id, InsightDismissParams**kwargs) -> InsightDismissResponse` **put** `/{accounts_or_zones}/{account_or_zone_id}/security-center/insights/{issue_id}/dismiss` Archives a Security Center insight for an account or zone, removing it from the active insights list while preserving historical data. ### Parameters - `issue_id: str` - `account_id: Optional[str]` The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `zone_id: Optional[str]` The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - `dismiss: Optional[bool]` ### Returns - `class InsightDismissResponse: …` - `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.security_center.insights.dismiss( issue_id="issue_id", account_id="account_id", ) 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 ### Insight List Response - `class InsightListResponse: …` - `count: Optional[int]` Indicates the total number of results. - `issues: Optional[List[Issue]]` - `id: Optional[str]` - `dismissed: Optional[bool]` - `has_extended_context: Optional[bool]` Indicates whether the insight has a large payload that requires fetching via the context endpoint. - `issue_class: Optional[str]` - `issue_type: Optional[IssueType]` - `"compliance_violation"` - `"email_security"` - `"exposed_infrastructure"` - `"insecure_configuration"` - `"weak_authentication"` - `"configuration_suggestion"` - `payload: Optional[IssuePayload]` - `detection_method: Optional[str]` Describes the method used to detect insight. - `zone_tag: Optional[str]` - `resolve_link: Optional[str]` - `resolve_text: Optional[str]` - `severity: Optional[Literal["Low", "Moderate", "Critical"]]` - `"Low"` - `"Moderate"` - `"Critical"` - `since: Optional[datetime]` - `status: Optional[Literal["active", "resolved"]]` The current status of the insight. - `"active"` - `"resolved"` - `subject: Optional[str]` - `timestamp: Optional[datetime]` - `user_classification: Optional[Literal["false_positive", "accept_risk", "other"]]` User-defined classification for the insight. Can be 'false_positive', 'accept_risk', 'other', or null. - `"false_positive"` - `"accept_risk"` - `"other"` - `page: Optional[int]` Specifies the current page within paginated list of results. - `per_page: Optional[int]` Sets the number of results per page of results. ### Insight Dismiss Response - `class InsightDismissResponse: …` - `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` # Class ## Retrieves Security Center Insight Counts by Class `security_center.insights.class_.get(ClassGetParams**kwargs) -> ClassGetResponse` **get** `/{accounts_or_zones}/{account_or_zone_id}/security-center/insights/class` Retrieves Security Center insight counts aggregated by classification class. ### Parameters - `account_id: Optional[str]` The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `zone_id: Optional[str]` The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - `dismissed: Optional[bool]` - `issue_class: Optional[Sequence[str]]` - `issue_class_neq: Optional[Sequence[str]]` - `issue_type: Optional[List[IssueType]]` - `"compliance_violation"` - `"email_security"` - `"exposed_infrastructure"` - `"insecure_configuration"` - `"weak_authentication"` - `"configuration_suggestion"` - `issue_type_neq: Optional[List[IssueType]]` - `"compliance_violation"` - `"email_security"` - `"exposed_infrastructure"` - `"insecure_configuration"` - `"weak_authentication"` - `"configuration_suggestion"` - `product: Optional[Sequence[str]]` - `product_neq: Optional[Sequence[str]]` - `severity: Optional[List[SeverityQueryParam]]` - `"low"` - `"moderate"` - `"critical"` - `severity_neq: Optional[List[SeverityQueryParam]]` - `"low"` - `"moderate"` - `"critical"` - `subject: Optional[Sequence[str]]` - `subject_neq: Optional[Sequence[str]]` ### Returns - `List[ClassGetResponseItem]` - `count: Optional[int]` - `value: Optional[str]` ### 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 ) classes = client.security_center.insights.class_.get( account_id="account_id", ) print(classes) ``` #### 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": [ { "count": 1, "value": "value" } ] } ``` ## Domain Types ### Class Get Response - `List[ClassGetResponseItem]` - `count: Optional[int]` - `value: Optional[str]` # Severity ## Retrieves Security Center Insight Counts by Severity `security_center.insights.severity.get(SeverityGetParams**kwargs) -> SeverityGetResponse` **get** `/{accounts_or_zones}/{account_or_zone_id}/security-center/insights/severity` Retrieves Security Center insight counts aggregated by severity level (critical, high, medium, low). ### Parameters - `account_id: Optional[str]` The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `zone_id: Optional[str]` The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - `dismissed: Optional[bool]` - `issue_class: Optional[Sequence[str]]` - `issue_class_neq: Optional[Sequence[str]]` - `issue_type: Optional[List[IssueType]]` - `"compliance_violation"` - `"email_security"` - `"exposed_infrastructure"` - `"insecure_configuration"` - `"weak_authentication"` - `"configuration_suggestion"` - `issue_type_neq: Optional[List[IssueType]]` - `"compliance_violation"` - `"email_security"` - `"exposed_infrastructure"` - `"insecure_configuration"` - `"weak_authentication"` - `"configuration_suggestion"` - `product: Optional[Sequence[str]]` - `product_neq: Optional[Sequence[str]]` - `severity: Optional[List[SeverityQueryParam]]` - `"low"` - `"moderate"` - `"critical"` - `severity_neq: Optional[List[SeverityQueryParam]]` - `"low"` - `"moderate"` - `"critical"` - `subject: Optional[Sequence[str]]` - `subject_neq: Optional[Sequence[str]]` ### Returns - `List[SeverityGetResponseItem]` - `count: Optional[int]` - `value: Optional[str]` ### 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 ) severities = client.security_center.insights.severity.get( account_id="account_id", ) print(severities) ``` #### 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": [ { "count": 1, "value": "value" } ] } ``` ## Domain Types ### Severity Get Response - `List[SeverityGetResponseItem]` - `count: Optional[int]` - `value: Optional[str]` # Type ## Retrieves Security Center Insight Counts by Type `security_center.insights.type.get(TypeGetParams**kwargs) -> TypeGetResponse` **get** `/{accounts_or_zones}/{account_or_zone_id}/security-center/insights/type` Retrieves Security Center insight counts aggregated by insight type. ### Parameters - `account_id: Optional[str]` The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `zone_id: Optional[str]` The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - `dismissed: Optional[bool]` - `issue_class: Optional[Sequence[str]]` - `issue_class_neq: Optional[Sequence[str]]` - `issue_type: Optional[List[IssueType]]` - `"compliance_violation"` - `"email_security"` - `"exposed_infrastructure"` - `"insecure_configuration"` - `"weak_authentication"` - `"configuration_suggestion"` - `issue_type_neq: Optional[List[IssueType]]` - `"compliance_violation"` - `"email_security"` - `"exposed_infrastructure"` - `"insecure_configuration"` - `"weak_authentication"` - `"configuration_suggestion"` - `product: Optional[Sequence[str]]` - `product_neq: Optional[Sequence[str]]` - `severity: Optional[List[SeverityQueryParam]]` - `"low"` - `"moderate"` - `"critical"` - `severity_neq: Optional[List[SeverityQueryParam]]` - `"low"` - `"moderate"` - `"critical"` - `subject: Optional[Sequence[str]]` - `subject_neq: Optional[Sequence[str]]` ### Returns - `List[TypeGetResponseItem]` - `count: Optional[int]` - `value: Optional[str]` ### 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 ) types = client.security_center.insights.type.get( account_id="account_id", ) print(types) ``` #### 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": [ { "count": 1, "value": "value" } ] } ``` ## Domain Types ### Type Get Response - `List[TypeGetResponseItem]` - `count: Optional[int]` - `value: Optional[str]` # Audit Logs ## Retrieves account or zone Audit Log `security_center.insights.audit_logs.list(AuditLogListParams**kwargs) -> SyncCursorPagination[AuditLogListResponse]` **get** `/{accounts_or_zones}/{account_or_zone_id}/security-center/insights/audit-log` Lists audit log entries for all Security Center insights in the account or zone, showing changes to insight status and classification. ### Parameters - `account_id: Optional[str]` The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `zone_id: Optional[str]` The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - `before: Optional[Union[str, datetime]]` Filter entries changed before this timestamp (RFC 3339). - `changed_by: Optional[str]` Filter by the actor that made the change. - `cursor: Optional[str]` Opaque cursor for pagination. Use the cursor value from result_info of the previous response. - `field_changed: Optional[Literal["status", "user_classification"]]` Filter by the field that was changed. - `"status"` - `"user_classification"` - `order: Optional[Literal["asc", "desc"]]` Sort order for results. Use 'asc' for oldest first or 'desc' for newest first. - `"asc"` - `"desc"` - `per_page: Optional[int]` Number of results per page. - `since: Optional[Union[str, datetime]]` Filter entries changed at or after this timestamp (RFC 3339). ### Returns - `class AuditLogListResponse: …` - `id: Optional[str]` UUIDv7 identifier for the audit log entry, time-ordered. - `changed_at: Optional[datetime]` The timestamp when the change occurred. - `changed_by: Optional[str]` The actor that made the change. 'system' for automated changes, or a user identifier. - `current_value: Optional[str]` The value of the field after the change. Null if the field was cleared. - `field_changed: Optional[Literal["status", "user_classification"]]` The field that was changed. - `"status"` - `"user_classification"` - `issue_id: Optional[str]` The ID of the insight this audit log entry relates to. - `previous_value: Optional[str]` The value of the field before the change. Null if the field was not previously set. - `rationale: Optional[str]` Optional rationale provided for the change. - `zone_id: Optional[int]` The zone ID associated with the insight. Only present for zone-level insights. ### 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.security_center.insights.audit_logs.list( account_id="account_id", ) 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": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "changed_at": "2019-12-27T18:11:19.117Z", "changed_by": "system", "current_value": "current_value", "field_changed": "status", "issue_id": "issue_id", "previous_value": "previous_value", "rationale": "rationale", "zone_id": 0 } ], "result_info": { "count": 25, "cursor": "cursor", "per_page": 25 } } ``` ## Retrieves Issue Audit Log `security_center.insights.audit_logs.list_by_insight(strissue_id, AuditLogListByInsightParams**kwargs) -> SyncCursorPagination[AuditLogListByInsightResponse]` **get** `/{accounts_or_zones}/{account_or_zone_id}/security-center/insights/{issue_id}/audit-log` Lists audit log entries for a specific Security Center insight, showing changes to its status and classification over time. ### Parameters - `issue_id: str` - `account_id: Optional[str]` The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `zone_id: Optional[str]` The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - `before: Optional[Union[str, datetime]]` Filter entries changed before this timestamp (RFC 3339). - `changed_by: Optional[str]` Filter by the actor that made the change. - `cursor: Optional[str]` Opaque cursor for pagination. Use the cursor value from result_info of the previous response. - `field_changed: Optional[Literal["status", "user_classification"]]` Filter by the field that was changed. - `"status"` - `"user_classification"` - `order: Optional[Literal["asc", "desc"]]` Sort order for results. Use 'asc' for oldest first or 'desc' for newest first. - `"asc"` - `"desc"` - `per_page: Optional[int]` Number of results per page. - `since: Optional[Union[str, datetime]]` Filter entries changed at or after this timestamp (RFC 3339). ### Returns - `class AuditLogListByInsightResponse: …` - `id: Optional[str]` UUIDv7 identifier for the audit log entry, time-ordered. - `changed_at: Optional[datetime]` The timestamp when the change occurred. - `changed_by: Optional[str]` The actor that made the change. 'system' for automated changes, or a user identifier. - `current_value: Optional[str]` The value of the field after the change. Null if the field was cleared. - `field_changed: Optional[Literal["status", "user_classification"]]` The field that was changed. - `"status"` - `"user_classification"` - `issue_id: Optional[str]` The ID of the insight this audit log entry relates to. - `previous_value: Optional[str]` The value of the field before the change. Null if the field was not previously set. - `rationale: Optional[str]` Optional rationale provided for the change. - `zone_id: Optional[int]` The zone ID associated with the insight. Only present for zone-level insights. ### 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.security_center.insights.audit_logs.list_by_insight( issue_id="issue_id", account_id="account_id", ) 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": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "changed_at": "2019-12-27T18:11:19.117Z", "changed_by": "system", "current_value": "current_value", "field_changed": "status", "issue_id": "issue_id", "previous_value": "previous_value", "rationale": "rationale", "zone_id": 0 } ], "result_info": { "count": 25, "cursor": "cursor", "per_page": 25 } } ``` ## Domain Types ### Audit Log List Response - `class AuditLogListResponse: …` - `id: Optional[str]` UUIDv7 identifier for the audit log entry, time-ordered. - `changed_at: Optional[datetime]` The timestamp when the change occurred. - `changed_by: Optional[str]` The actor that made the change. 'system' for automated changes, or a user identifier. - `current_value: Optional[str]` The value of the field after the change. Null if the field was cleared. - `field_changed: Optional[Literal["status", "user_classification"]]` The field that was changed. - `"status"` - `"user_classification"` - `issue_id: Optional[str]` The ID of the insight this audit log entry relates to. - `previous_value: Optional[str]` The value of the field before the change. Null if the field was not previously set. - `rationale: Optional[str]` Optional rationale provided for the change. - `zone_id: Optional[int]` The zone ID associated with the insight. Only present for zone-level insights. ### Audit Log List By Insight Response - `class AuditLogListByInsightResponse: …` - `id: Optional[str]` UUIDv7 identifier for the audit log entry, time-ordered. - `changed_at: Optional[datetime]` The timestamp when the change occurred. - `changed_by: Optional[str]` The actor that made the change. 'system' for automated changes, or a user identifier. - `current_value: Optional[str]` The value of the field after the change. Null if the field was cleared. - `field_changed: Optional[Literal["status", "user_classification"]]` The field that was changed. - `"status"` - `"user_classification"` - `issue_id: Optional[str]` The ID of the insight this audit log entry relates to. - `previous_value: Optional[str]` The value of the field before the change. Null if the field was not previously set. - `rationale: Optional[str]` Optional rationale provided for the change. - `zone_id: Optional[int]` The zone ID associated with the insight. Only present for zone-level insights. # Classification ## Updates Security Center Insight Classification `security_center.insights.classification.update(strissue_id, ClassificationUpdateParams**kwargs) -> ClassificationUpdateResponse` **patch** `/{accounts_or_zones}/{account_or_zone_id}/security-center/insights/{issue_id}/classification` Updates the user classification for a Security Center insight. Valid values are 'false_positive' or 'accept_risk'. To reset, set classification to null. Cannot change directly between classification values - must reset to null first. ### Parameters - `issue_id: str` - `account_id: Optional[str]` The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `zone_id: Optional[str]` The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - `classification: Optional[Literal["false_positive", "accept_risk", "other"]]` User-defined classification for the insight. Can be 'false_positive', 'accept_risk', 'other', or null. - `"false_positive"` - `"accept_risk"` - `"other"` - `rationale: Optional[str]` Rationale for the classification change. Required when classification is 'accept_risk' or 'other'. ### Returns - `class ClassificationUpdateResponse: …` - `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 ) classification = client.security_center.insights.classification.update( issue_id="issue_id", account_id="account_id", ) print(classification.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 ### Classification Update Response - `class ClassificationUpdateResponse: …` - `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` # Context ## Retrieves Security Center Insight Context `security_center.insights.context.get(strissue_id, ContextGetParams**kwargs) -> ContextGetResponse` **get** `/accounts/{account_id}/security-center/insights/{issue_id}/context` Returns the full context payload for an insight. This endpoint is used for insights with large payloads that are not included inline in the list response. ### Parameters - `account_id: str` Identifier. - `issue_id: str` ### Returns - `Dict[str, object]` ### 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 ) context = client.security_center.insights.context.get( issue_id="issue_id", account_id="023e105f4ecef8ad9ca31a8372d0c353", ) print(context) ``` #### 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": { "foo": "bar" } } ``` ## Domain Types ### Context Get Response - `Dict[str, object]`