# Target Environments ## List Target Environments `client.VulnerabilityScanner.TargetEnvironments.List(ctx, params) (*V4PagePaginationArray[TargetEnvironmentListResponse], error)` **get** `/accounts/{account_id}/vuln_scanner/target_environments` Returns all target environments for the account. ### Parameters - `params TargetEnvironmentListParams` - `AccountID param.Field[string]` Path param: Identifier. - `Page param.Field[int64]` Query param: Page number of paginated results. - `PerPage param.Field[int64]` Query param: Number of results per page. ### Returns - `type TargetEnvironmentListResponse struct{…}` - `ID string` Target environment identifier. - `Name string` Human-readable name. - `Target TargetEnvironmentListResponseTarget` Identifies the Cloudflare asset to scan. Uses a `type` discriminator. Currently the service supports only `zone` targets. - `Type TargetEnvironmentListResponseTargetType` - `const TargetEnvironmentListResponseTargetTypeZone TargetEnvironmentListResponseTargetType = "zone"` - `ZoneTag string` Cloudflare zone tag. The zone must belong to the account. - `Description string` Optional description providing additional context. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/vulnerability_scanner" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) page, err := client.VulnerabilityScanner.TargetEnvironments.List(context.TODO(), vulnerability_scanner.TargetEnvironmentListParams{ 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": [ { "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "name": "Production Zone", "target": { "type": "zone", "zone_tag": "d8e8fca2dc0f896fd7cb4cb0031ba249" }, "description": "Main production environment" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ``` ## Create Target Environment `client.VulnerabilityScanner.TargetEnvironments.New(ctx, params) (*TargetEnvironmentNewResponse, error)` **post** `/accounts/{account_id}/vuln_scanner/target_environments` Creates a new target environment for the account. ### Parameters - `params TargetEnvironmentNewParams` - `AccountID param.Field[string]` Path param: Identifier. - `Name param.Field[string]` Body param: Human-readable name. - `Target param.Field[TargetEnvironmentNewParamsTarget]` Body param: Identifies the Cloudflare asset to scan. Uses a `type` discriminator. Currently the service supports only `zone` targets. - `Type TargetEnvironmentNewParamsTargetType` - `const TargetEnvironmentNewParamsTargetTypeZone TargetEnvironmentNewParamsTargetType = "zone"` - `ZoneTag string` Cloudflare zone tag. The zone must belong to the account. - `Description param.Field[string]` Body param: Optional description. ### Returns - `type TargetEnvironmentNewResponse struct{…}` - `ID string` Target environment identifier. - `Name string` Human-readable name. - `Target TargetEnvironmentNewResponseTarget` Identifies the Cloudflare asset to scan. Uses a `type` discriminator. Currently the service supports only `zone` targets. - `Type TargetEnvironmentNewResponseTargetType` - `const TargetEnvironmentNewResponseTargetTypeZone TargetEnvironmentNewResponseTargetType = "zone"` - `ZoneTag string` Cloudflare zone tag. The zone must belong to the account. - `Description string` Optional description providing additional context. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/vulnerability_scanner" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) targetEnvironment, err := client.VulnerabilityScanner.TargetEnvironments.New(context.TODO(), vulnerability_scanner.TargetEnvironmentNewParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Name: cloudflare.F("Production Zone"), Target: cloudflare.F(vulnerability_scanner.TargetEnvironmentNewParamsTarget{ Type: cloudflare.F(vulnerability_scanner.TargetEnvironmentNewParamsTargetTypeZone), ZoneTag: cloudflare.F("d8e8fca2dc0f896fd7cb4cb0031ba249"), }), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", targetEnvironment.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", "name": "Production Zone", "target": { "type": "zone", "zone_tag": "d8e8fca2dc0f896fd7cb4cb0031ba249" }, "description": "Main production environment" }, "result_info": {} } ``` ## Get Target Environment `client.VulnerabilityScanner.TargetEnvironments.Get(ctx, targetEnvironmentID, query) (*TargetEnvironmentGetResponse, error)` **get** `/accounts/{account_id}/vuln_scanner/target_environments/{target_environment_id}` Returns a single target environment by ID. ### Parameters - `targetEnvironmentID string` - `query TargetEnvironmentGetParams` - `AccountID param.Field[string]` Identifier. ### Returns - `type TargetEnvironmentGetResponse struct{…}` - `ID string` Target environment identifier. - `Name string` Human-readable name. - `Target TargetEnvironmentGetResponseTarget` Identifies the Cloudflare asset to scan. Uses a `type` discriminator. Currently the service supports only `zone` targets. - `Type TargetEnvironmentGetResponseTargetType` - `const TargetEnvironmentGetResponseTargetTypeZone TargetEnvironmentGetResponseTargetType = "zone"` - `ZoneTag string` Cloudflare zone tag. The zone must belong to the account. - `Description string` Optional description providing additional context. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/vulnerability_scanner" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) targetEnvironment, err := client.VulnerabilityScanner.TargetEnvironments.Get( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", vulnerability_scanner.TargetEnvironmentGetParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", targetEnvironment.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", "name": "Production Zone", "target": { "type": "zone", "zone_tag": "d8e8fca2dc0f896fd7cb4cb0031ba249" }, "description": "Main production environment" }, "result_info": {} } ``` ## Update Target Environment `client.VulnerabilityScanner.TargetEnvironments.Update(ctx, targetEnvironmentID, params) (*TargetEnvironmentUpdateResponse, error)` **put** `/accounts/{account_id}/vuln_scanner/target_environments/{target_environment_id}` Replaces a target environment. All fields must be provided. ### Parameters - `targetEnvironmentID string` - `params TargetEnvironmentUpdateParams` - `AccountID param.Field[string]` Path param: Identifier. - `Name param.Field[string]` Body param: Human-readable name. - `Target param.Field[TargetEnvironmentUpdateParamsTarget]` Body param: Identifies the Cloudflare asset to scan. Uses a `type` discriminator. Currently the service supports only `zone` targets. - `Type TargetEnvironmentUpdateParamsTargetType` - `const TargetEnvironmentUpdateParamsTargetTypeZone TargetEnvironmentUpdateParamsTargetType = "zone"` - `ZoneTag string` Cloudflare zone tag. The zone must belong to the account. - `Description param.Field[string]` Body param: Optional description. ### Returns - `type TargetEnvironmentUpdateResponse struct{…}` - `ID string` Target environment identifier. - `Name string` Human-readable name. - `Target TargetEnvironmentUpdateResponseTarget` Identifies the Cloudflare asset to scan. Uses a `type` discriminator. Currently the service supports only `zone` targets. - `Type TargetEnvironmentUpdateResponseTargetType` - `const TargetEnvironmentUpdateResponseTargetTypeZone TargetEnvironmentUpdateResponseTargetType = "zone"` - `ZoneTag string` Cloudflare zone tag. The zone must belong to the account. - `Description string` Optional description providing additional context. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/vulnerability_scanner" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) targetEnvironment, err := client.VulnerabilityScanner.TargetEnvironments.Update( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", vulnerability_scanner.TargetEnvironmentUpdateParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Name: cloudflare.F("Production Zone"), Target: cloudflare.F(vulnerability_scanner.TargetEnvironmentUpdateParamsTarget{ Type: cloudflare.F(vulnerability_scanner.TargetEnvironmentUpdateParamsTargetTypeZone), ZoneTag: cloudflare.F("d8e8fca2dc0f896fd7cb4cb0031ba249"), }), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", targetEnvironment.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", "name": "Production Zone", "target": { "type": "zone", "zone_tag": "d8e8fca2dc0f896fd7cb4cb0031ba249" }, "description": "Main production environment" }, "result_info": {} } ``` ## Edit Target Environment `client.VulnerabilityScanner.TargetEnvironments.Edit(ctx, targetEnvironmentID, params) (*TargetEnvironmentEditResponse, error)` **patch** `/accounts/{account_id}/vuln_scanner/target_environments/{target_environment_id}` Updates a target environment with only the provided fields; omitted fields remain unchanged. ### Parameters - `targetEnvironmentID string` - `params TargetEnvironmentEditParams` - `AccountID param.Field[string]` Path param: Identifier. - `Description param.Field[string]` Body param: Optional description. Omit to leave unchanged, set to `null` to clear, or provide a string to update. - `Name param.Field[string]` Body param: Human-readable name. - `Target param.Field[TargetEnvironmentEditParamsTarget]` Body param: Identifies the Cloudflare asset to scan. Uses a `type` discriminator. Currently the service supports only `zone` targets. - `Type TargetEnvironmentEditParamsTargetType` - `const TargetEnvironmentEditParamsTargetTypeZone TargetEnvironmentEditParamsTargetType = "zone"` - `ZoneTag string` Cloudflare zone tag. The zone must belong to the account. ### Returns - `type TargetEnvironmentEditResponse struct{…}` - `ID string` Target environment identifier. - `Name string` Human-readable name. - `Target TargetEnvironmentEditResponseTarget` Identifies the Cloudflare asset to scan. Uses a `type` discriminator. Currently the service supports only `zone` targets. - `Type TargetEnvironmentEditResponseTargetType` - `const TargetEnvironmentEditResponseTargetTypeZone TargetEnvironmentEditResponseTargetType = "zone"` - `ZoneTag string` Cloudflare zone tag. The zone must belong to the account. - `Description string` Optional description providing additional context. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/vulnerability_scanner" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.VulnerabilityScanner.TargetEnvironments.Edit( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", vulnerability_scanner.TargetEnvironmentEditParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", 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": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", "name": "Production Zone", "target": { "type": "zone", "zone_tag": "d8e8fca2dc0f896fd7cb4cb0031ba249" }, "description": "Main production environment" }, "result_info": {} } ``` ## Delete Target Environment `client.VulnerabilityScanner.TargetEnvironments.Delete(ctx, targetEnvironmentID, body) (*TargetEnvironmentDeleteResponse, error)` **delete** `/accounts/{account_id}/vuln_scanner/target_environments/{target_environment_id}` Removes a target environment. ### Parameters - `targetEnvironmentID string` - `body TargetEnvironmentDeleteParams` - `AccountID param.Field[string]` Identifier. ### Returns - `type TargetEnvironmentDeleteResponse interface{…}` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/vulnerability_scanner" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) targetEnvironment, err := client.VulnerabilityScanner.TargetEnvironments.Delete( context.TODO(), "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e", vulnerability_scanner.TargetEnvironmentDeleteParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", targetEnvironment) } ``` #### 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": {}, "result_info": {} } ```