# Validate ## Validate destination `client.Logpush.Validate.Destination(ctx, params) (*ValidateDestinationResponse, error)` **post** `/{accounts_or_zones}/{account_or_zone_id}/logpush/validate/destination` Validates destination. ### Parameters - `params ValidateDestinationParams` - `DestinationConf param.Field[string]` Body param: Uniquely identifies a resource (such as an s3 bucket) where data. will be pushed. Additional configuration parameters supported by the destination may be included. - `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. ### Returns - `type ValidateDestinationResponse struct{…}` - `Message string` - `Valid bool` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/logpush" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Logpush.Validate.Destination(context.TODO(), logpush.ValidateDestinationParams{ DestinationConf: cloudflare.F("s3://mybucket/logs?region=us-west-2"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Valid) } ``` #### 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": { "message": "", "valid": true } } ``` ## Check destination exists `client.Logpush.Validate.DestinationExists(ctx, params) (*ValidateDestinationExistsResponse, error)` **post** `/{accounts_or_zones}/{account_or_zone_id}/logpush/validate/destination/exists` Checks if there is an existing job with a destination. ### Parameters - `params ValidateDestinationExistsParams` - `DestinationConf param.Field[string]` Body param: Uniquely identifies a resource (such as an s3 bucket) where data. will be pushed. Additional configuration parameters supported by the destination may be included. - `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. ### Returns - `type ValidateDestinationExistsResponse struct{…}` - `Exists bool` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/logpush" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Logpush.Validate.DestinationExists(context.TODO(), logpush.ValidateDestinationExistsParams{ DestinationConf: cloudflare.F("s3://mybucket/logs?region=us-west-2"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Exists) } ``` #### 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": { "exists": false } } ``` ## Validate origin `client.Logpush.Validate.Origin(ctx, params) (*ValidateOriginResponse, error)` **post** `/{accounts_or_zones}/{account_or_zone_id}/logpush/validate/origin` Validates logpull origin with logpull_options. ### Parameters - `params ValidateOriginParams` - `LogpullOptions param.Field[string]` Body param: This field is deprecated. Use `output_options` instead. Configuration string. It specifies things like requested fields and timestamp formats. If migrating from the logpull api, copy the url (full url or just the query string) of your call here, and logpush will keep on making this call for you, setting start and end times appropriately. - `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. ### Returns - `type ValidateOriginResponse struct{…}` - `Message string` - `Valid bool` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/logpush" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.Logpush.Validate.Origin(context.TODO(), logpush.ValidateOriginParams{ LogpullOptions: cloudflare.F("fields=RayID,ClientIP,EdgeStartTimestamp×tamps=rfc3339"), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.Valid) } ``` #### 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": { "message": "", "valid": true } } ```