# Security Center # Insights ## Retrieves Security Center Insights `client.SecurityCenter.Insights.List(ctx, params) (*V4PagePagination[InsightListResponse], error)` **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 - `params InsightListParams` - `AccountID param.Field[string]` Path param: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `ZoneID param.Field[string]` Path param: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - `Dismissed param.Field[bool]` Query param - `IssueClass param.Field[[]string]` Query param - `IssueClassNeq param.Field[[]string]` Query param - `IssueType param.Field[[]IssueType]` Query param - `const IssueTypeComplianceViolation IssueType = "compliance_violation"` - `const IssueTypeEmailSecurity IssueType = "email_security"` - `const IssueTypeExposedInfrastructure IssueType = "exposed_infrastructure"` - `const IssueTypeInsecureConfiguration IssueType = "insecure_configuration"` - `const IssueTypeWeakAuthentication IssueType = "weak_authentication"` - `const IssueTypeConfigurationSuggestion IssueType = "configuration_suggestion"` - `IssueTypeNeq param.Field[[]IssueType]` Query param - `const IssueTypeComplianceViolation IssueType = "compliance_violation"` - `const IssueTypeEmailSecurity IssueType = "email_security"` - `const IssueTypeExposedInfrastructure IssueType = "exposed_infrastructure"` - `const IssueTypeInsecureConfiguration IssueType = "insecure_configuration"` - `const IssueTypeWeakAuthentication IssueType = "weak_authentication"` - `const IssueTypeConfigurationSuggestion IssueType = "configuration_suggestion"` - `Page param.Field[int64]` Query param: Specifies the current page within paginated list of results. - `PerPage param.Field[int64]` Query param: Sets the number of results per page of results. - `Product param.Field[[]string]` Query param - `ProductNeq param.Field[[]string]` Query param - `Severity param.Field[[]SeverityQueryParam]` Query param - `const SeverityQueryParamLow SeverityQueryParam = "low"` - `const SeverityQueryParamModerate SeverityQueryParam = "moderate"` - `const SeverityQueryParamCritical SeverityQueryParam = "critical"` - `SeverityNeq param.Field[[]SeverityQueryParam]` Query param - `const SeverityQueryParamLow SeverityQueryParam = "low"` - `const SeverityQueryParamModerate SeverityQueryParam = "moderate"` - `const SeverityQueryParamCritical SeverityQueryParam = "critical"` - `Subject param.Field[[]string]` Query param - `SubjectNeq param.Field[[]string]` Query param ### Returns - `type InsightListResponse struct{…}` - `Count int64` Indicates the total number of results. - `Issues []InsightListResponseIssue` - `ID string` - `Dismissed bool` - `IssueClass string` - `IssueType IssueType` - `const IssueTypeComplianceViolation IssueType = "compliance_violation"` - `const IssueTypeEmailSecurity IssueType = "email_security"` - `const IssueTypeExposedInfrastructure IssueType = "exposed_infrastructure"` - `const IssueTypeInsecureConfiguration IssueType = "insecure_configuration"` - `const IssueTypeWeakAuthentication IssueType = "weak_authentication"` - `const IssueTypeConfigurationSuggestion IssueType = "configuration_suggestion"` - `Payload InsightListResponseIssuesPayload` - `DetectionMethod string` Describes the method used to detect insight. - `ZoneTag string` - `ResolveLink string` - `ResolveText string` - `Severity InsightListResponseIssuesSeverity` - `const InsightListResponseIssuesSeverityLow InsightListResponseIssuesSeverity = "Low"` - `const InsightListResponseIssuesSeverityModerate InsightListResponseIssuesSeverity = "Moderate"` - `const InsightListResponseIssuesSeverityCritical InsightListResponseIssuesSeverity = "Critical"` - `Since Time` - `Subject string` - `Timestamp Time` - `Page int64` Specifies the current page within paginated list of results. - `PerPage int64` Sets the number of results per page of results. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/security_center" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.SecurityCenter.Insights.List(context.TODO(), security_center.InsightListParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", page) } ``` #### 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, "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", "subject": "example.com", "timestamp": "2019-12-27T18:11:19.117Z" } ], "page": 1, "per_page": 25 } } ``` ## Archives Security Center Insight `client.SecurityCenter.Insights.Dismiss(ctx, issueID, params) (*InsightDismissResponse, error)` **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 - `issueID string` - `params InsightDismissParams` - `AccountID param.Field[string]` Path param: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `ZoneID param.Field[string]` Path param: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - `Dismiss param.Field[bool]` Body param ### Returns - `type InsightDismissResponse struct{…}` - `Errors []InsightDismissResponseError` - `Code int64` - `Message string` - `DocumentationURL string` - `Source InsightDismissResponseErrorsSource` - `Pointer string` - `Messages []InsightDismissResponseMessage` - `Code int64` - `Message string` - `DocumentationURL string` - `Source InsightDismissResponseMessagesSource` - `Pointer string` - `Success InsightDismissResponseSuccess` Whether the API call was successful. - `const InsightDismissResponseSuccessTrue InsightDismissResponseSuccess = true` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/security_center" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.SecurityCenter.Insights.Dismiss( context.TODO(), "issue_id", security_center.InsightDismissParams{ }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", 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 } ``` # Class ## Retrieves Security Center Insight Counts by Class `client.SecurityCenter.Insights.Class.Get(ctx, params) (*[]InsightClassGetResponse, error)` **get** `/{accounts_or_zones}/{account_or_zone_id}/security-center/insights/class` Retrieves Security Center insight counts aggregated by classification class. ### Parameters - `params InsightClassGetParams` - `AccountID param.Field[string]` Path param: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `ZoneID param.Field[string]` Path param: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - `Dismissed param.Field[bool]` Query param - `IssueClass param.Field[[]string]` Query param - `IssueClassNeq param.Field[[]string]` Query param - `IssueType param.Field[[]IssueType]` Query param - `const IssueTypeComplianceViolation IssueType = "compliance_violation"` - `const IssueTypeEmailSecurity IssueType = "email_security"` - `const IssueTypeExposedInfrastructure IssueType = "exposed_infrastructure"` - `const IssueTypeInsecureConfiguration IssueType = "insecure_configuration"` - `const IssueTypeWeakAuthentication IssueType = "weak_authentication"` - `const IssueTypeConfigurationSuggestion IssueType = "configuration_suggestion"` - `IssueTypeNeq param.Field[[]IssueType]` Query param - `const IssueTypeComplianceViolation IssueType = "compliance_violation"` - `const IssueTypeEmailSecurity IssueType = "email_security"` - `const IssueTypeExposedInfrastructure IssueType = "exposed_infrastructure"` - `const IssueTypeInsecureConfiguration IssueType = "insecure_configuration"` - `const IssueTypeWeakAuthentication IssueType = "weak_authentication"` - `const IssueTypeConfigurationSuggestion IssueType = "configuration_suggestion"` - `Product param.Field[[]string]` Query param - `ProductNeq param.Field[[]string]` Query param - `Severity param.Field[[]SeverityQueryParam]` Query param - `const SeverityQueryParamLow SeverityQueryParam = "low"` - `const SeverityQueryParamModerate SeverityQueryParam = "moderate"` - `const SeverityQueryParamCritical SeverityQueryParam = "critical"` - `SeverityNeq param.Field[[]SeverityQueryParam]` Query param - `const SeverityQueryParamLow SeverityQueryParam = "low"` - `const SeverityQueryParamModerate SeverityQueryParam = "moderate"` - `const SeverityQueryParamCritical SeverityQueryParam = "critical"` - `Subject param.Field[[]string]` Query param - `SubjectNeq param.Field[[]string]` Query param ### Returns - `type InsightClassGetResponseEnvelopeResult []InsightClassGetResponse` - `Count int64` - `Value string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/security_center" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) classes, err := client.SecurityCenter.Insights.Class.Get(context.TODO(), security_center.InsightClassGetParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", 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" } ] } ``` # Severity ## Retrieves Security Center Insight Counts by Severity `client.SecurityCenter.Insights.Severity.Get(ctx, params) (*[]InsightSeverityGetResponse, error)` **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 - `params InsightSeverityGetParams` - `AccountID param.Field[string]` Path param: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `ZoneID param.Field[string]` Path param: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - `Dismissed param.Field[bool]` Query param - `IssueClass param.Field[[]string]` Query param - `IssueClassNeq param.Field[[]string]` Query param - `IssueType param.Field[[]IssueType]` Query param - `const IssueTypeComplianceViolation IssueType = "compliance_violation"` - `const IssueTypeEmailSecurity IssueType = "email_security"` - `const IssueTypeExposedInfrastructure IssueType = "exposed_infrastructure"` - `const IssueTypeInsecureConfiguration IssueType = "insecure_configuration"` - `const IssueTypeWeakAuthentication IssueType = "weak_authentication"` - `const IssueTypeConfigurationSuggestion IssueType = "configuration_suggestion"` - `IssueTypeNeq param.Field[[]IssueType]` Query param - `const IssueTypeComplianceViolation IssueType = "compliance_violation"` - `const IssueTypeEmailSecurity IssueType = "email_security"` - `const IssueTypeExposedInfrastructure IssueType = "exposed_infrastructure"` - `const IssueTypeInsecureConfiguration IssueType = "insecure_configuration"` - `const IssueTypeWeakAuthentication IssueType = "weak_authentication"` - `const IssueTypeConfigurationSuggestion IssueType = "configuration_suggestion"` - `Product param.Field[[]string]` Query param - `ProductNeq param.Field[[]string]` Query param - `Severity param.Field[[]SeverityQueryParam]` Query param - `const SeverityQueryParamLow SeverityQueryParam = "low"` - `const SeverityQueryParamModerate SeverityQueryParam = "moderate"` - `const SeverityQueryParamCritical SeverityQueryParam = "critical"` - `SeverityNeq param.Field[[]SeverityQueryParam]` Query param - `const SeverityQueryParamLow SeverityQueryParam = "low"` - `const SeverityQueryParamModerate SeverityQueryParam = "moderate"` - `const SeverityQueryParamCritical SeverityQueryParam = "critical"` - `Subject param.Field[[]string]` Query param - `SubjectNeq param.Field[[]string]` Query param ### Returns - `type InsightSeverityGetResponseEnvelopeResult []InsightSeverityGetResponse` - `Count int64` - `Value string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/security_center" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) severities, err := client.SecurityCenter.Insights.Severity.Get(context.TODO(), security_center.InsightSeverityGetParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", 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" } ] } ``` # Type ## Retrieves Security Center Insight Counts by Type `client.SecurityCenter.Insights.Type.Get(ctx, params) (*[]InsightTypeGetResponse, error)` **get** `/{accounts_or_zones}/{account_or_zone_id}/security-center/insights/type` Retrieves Security Center insight counts aggregated by insight type. ### Parameters - `params InsightTypeGetParams` - `AccountID param.Field[string]` Path param: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `ZoneID param.Field[string]` Path param: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - `Dismissed param.Field[bool]` Query param - `IssueClass param.Field[[]string]` Query param - `IssueClassNeq param.Field[[]string]` Query param - `IssueType param.Field[[]IssueType]` Query param - `const IssueTypeComplianceViolation IssueType = "compliance_violation"` - `const IssueTypeEmailSecurity IssueType = "email_security"` - `const IssueTypeExposedInfrastructure IssueType = "exposed_infrastructure"` - `const IssueTypeInsecureConfiguration IssueType = "insecure_configuration"` - `const IssueTypeWeakAuthentication IssueType = "weak_authentication"` - `const IssueTypeConfigurationSuggestion IssueType = "configuration_suggestion"` - `IssueTypeNeq param.Field[[]IssueType]` Query param - `const IssueTypeComplianceViolation IssueType = "compliance_violation"` - `const IssueTypeEmailSecurity IssueType = "email_security"` - `const IssueTypeExposedInfrastructure IssueType = "exposed_infrastructure"` - `const IssueTypeInsecureConfiguration IssueType = "insecure_configuration"` - `const IssueTypeWeakAuthentication IssueType = "weak_authentication"` - `const IssueTypeConfigurationSuggestion IssueType = "configuration_suggestion"` - `Product param.Field[[]string]` Query param - `ProductNeq param.Field[[]string]` Query param - `Severity param.Field[[]SeverityQueryParam]` Query param - `const SeverityQueryParamLow SeverityQueryParam = "low"` - `const SeverityQueryParamModerate SeverityQueryParam = "moderate"` - `const SeverityQueryParamCritical SeverityQueryParam = "critical"` - `SeverityNeq param.Field[[]SeverityQueryParam]` Query param - `const SeverityQueryParamLow SeverityQueryParam = "low"` - `const SeverityQueryParamModerate SeverityQueryParam = "moderate"` - `const SeverityQueryParamCritical SeverityQueryParam = "critical"` - `Subject param.Field[[]string]` Query param - `SubjectNeq param.Field[[]string]` Query param ### Returns - `type InsightTypeGetResponseEnvelopeResult []InsightTypeGetResponse` - `Count int64` - `Value string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/security_center" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) types, err := client.SecurityCenter.Insights.Type.Get(context.TODO(), security_center.InsightTypeGetParams{ }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", 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" } ] } ```