# Attack Surface Report # Issue Types ## Retrieves Security Center Issues Types `client.Intel.AttackSurfaceReport.IssueTypes.Get(ctx, query) (*SinglePage[string], error)` **get** `/accounts/{account_id}/intel/attack-surface-report/issue-types` Lists all available issue types in Security Center, describing categories of security issues. ### Parameters - `query AttackSurfaceReportIssueTypeGetParams` - `AccountID param.Field[string]` Identifier. ### Returns - `type AttackSurfaceReportIssueTypeGetResponseEnvelopeResult string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/intel" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.Intel.AttackSurfaceReport.IssueTypes.Get(context.TODO(), intel.AttackSurfaceReportIssueTypeGetParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) 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": [ "string" ] } ``` # Issues ## Retrieves Security Center Issues `client.Intel.AttackSurfaceReport.Issues.List(ctx, params) (*V4PagePagination[AttackSurfaceReportIssueListResponse], error)` **get** `/accounts/{account_id}/intel/attack-surface-report/issues` Lists all Security Center issues for the account, showing active security problems requiring attention. ### Parameters - `params AttackSurfaceReportIssueListParams` - `AccountID param.Field[string]` Path param: Identifier. - `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 AttackSurfaceReportIssueListResponse struct{…}` - `Count int64` Indicates the total number of results. - `Issues []AttackSurfaceReportIssueListResponseIssue` - `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 AttackSurfaceReportIssueListResponseIssuesPayload` - `DetectionMethod string` Describes the method used to detect insight. - `ZoneTag string` - `ResolveLink string` - `ResolveText string` - `Severity AttackSurfaceReportIssueListResponseIssuesSeverity` - `const AttackSurfaceReportIssueListResponseIssuesSeverityLow AttackSurfaceReportIssueListResponseIssuesSeverity = "Low"` - `const AttackSurfaceReportIssueListResponseIssuesSeverityModerate AttackSurfaceReportIssueListResponseIssuesSeverity = "Moderate"` - `const AttackSurfaceReportIssueListResponseIssuesSeverityCritical AttackSurfaceReportIssueListResponseIssuesSeverity = "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/intel" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.Intel.AttackSurfaceReport.Issues.List(context.TODO(), intel.AttackSurfaceReportIssueListParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) 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 } } ``` ## Retrieves Security Center Issue Counts by Class `client.Intel.AttackSurfaceReport.Issues.Class(ctx, params) (*[]AttackSurfaceReportIssueClassResponse, error)` **get** `/accounts/{account_id}/intel/attack-surface-report/issues/class` Retrieves Security Center issue counts aggregated by classification class. ### Parameters - `params AttackSurfaceReportIssueClassParams` - `AccountID param.Field[string]` Path param: Identifier. - `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 AttackSurfaceReportIssueClassResponseEnvelopeResult []AttackSurfaceReportIssueClassResponse` - `Count int64` - `Value string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/intel" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Intel.AttackSurfaceReport.Issues.Class(context.TODO(), intel.AttackSurfaceReportIssueClassParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response) } ``` #### 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" } ] } ``` ## Retrieves Security Center Issue Counts by Severity `client.Intel.AttackSurfaceReport.Issues.Severity(ctx, params) (*[]AttackSurfaceReportIssueSeverityResponse, error)` **get** `/accounts/{account_id}/intel/attack-surface-report/issues/severity` Retrieves Security Center issue counts aggregated by severity level. ### Parameters - `params AttackSurfaceReportIssueSeverityParams` - `AccountID param.Field[string]` Path param: Identifier. - `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 AttackSurfaceReportIssueSeverityResponseEnvelopeResult []AttackSurfaceReportIssueSeverityResponse` - `Count int64` - `Value string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/intel" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Intel.AttackSurfaceReport.Issues.Severity(context.TODO(), intel.AttackSurfaceReportIssueSeverityParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response) } ``` #### 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" } ] } ``` ## Retrieves Security Center Issue Counts by Type `client.Intel.AttackSurfaceReport.Issues.Type(ctx, params) (*[]AttackSurfaceReportIssueTypeResponse, error)` **get** `/accounts/{account_id}/intel/attack-surface-report/issues/type` Retrieves Security Center issue counts aggregated by issue type. ### Parameters - `params AttackSurfaceReportIssueTypeParams` - `AccountID param.Field[string]` Path param: Identifier. - `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 AttackSurfaceReportIssueTypeResponseEnvelopeResult []AttackSurfaceReportIssueTypeResponse` - `Count int64` - `Value string` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/intel" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Intel.AttackSurfaceReport.Issues.Type(context.TODO(), intel.AttackSurfaceReportIssueTypeParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response) } ``` #### 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" } ] } ``` ## Archives Security Center Insight `client.Intel.AttackSurfaceReport.Issues.Dismiss(ctx, issueID, params) (*AttackSurfaceReportIssueDismissResponse, error)` **put** `/accounts/{account_id}/intel/attack-surface-report/{issue_id}/dismiss` Deprecated endpoint for archiving Security Center insights. Use the newer archive-security-center-insight endpoint instead. ### Parameters - `issueID string` - `params AttackSurfaceReportIssueDismissParams` - `AccountID param.Field[string]` Path param: Identifier. - `Dismiss param.Field[bool]` Body param ### Returns - `type AttackSurfaceReportIssueDismissResponse struct{…}` - `Errors []AttackSurfaceReportIssueDismissResponseError` - `Code int64` - `Message string` - `DocumentationURL string` - `Source AttackSurfaceReportIssueDismissResponseErrorsSource` - `Pointer string` - `Messages []AttackSurfaceReportIssueDismissResponseMessage` - `Code int64` - `Message string` - `DocumentationURL string` - `Source AttackSurfaceReportIssueDismissResponseMessagesSource` - `Pointer string` - `Success AttackSurfaceReportIssueDismissResponseSuccess` Whether the API call was successful. - `const AttackSurfaceReportIssueDismissResponseSuccessTrue AttackSurfaceReportIssueDismissResponseSuccess = true` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/intel" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Intel.AttackSurfaceReport.Issues.Dismiss( context.TODO(), "issue_id", intel.AttackSurfaceReportIssueDismissParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) 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 } ``` ## Domain Types ### Issue Type - `type IssueType string` - `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"` ### Severity Query Param - `type SeverityQueryParam string` - `const SeverityQueryParamLow SeverityQueryParam = "low"` - `const SeverityQueryParamModerate SeverityQueryParam = "moderate"` - `const SeverityQueryParamCritical SeverityQueryParam = "critical"`