## Generate Pre Shared Key (PSK) for IPsec tunnels `client.MagicTransit.IPSECTunnels.PSKGenerate(ctx, ipsecTunnelID, params) (*IPSECTunnelPSKGenerateResponse, error)` **post** `/accounts/{account_id}/magic/ipsec_tunnels/{ipsec_tunnel_id}/psk_generate` Generates a Pre Shared Key for a specific IPsec tunnel used in the IKE session. Use `?validate_only=true` as an optional query parameter to only run validation without persisting changes. After a PSK is generated, the PSK is immediately persisted to Cloudflare's edge and cannot be retrieved later. Note the PSK in a safe place. ### Parameters - `ipsecTunnelID string` Identifier - `params IPSECTunnelPSKGenerateParams` - `AccountID param.Field[string]` Path param: Identifier - `Body param.Field[unknown]` Body param ### Returns - `type IPSECTunnelPSKGenerateResponse struct{…}` - `IPSECTunnelID string` Identifier - `PSK string` A randomly generated or provided string for use in the IPsec tunnel. - `PSKMetadata PSKMetadata` The PSK metadata that includes when the PSK was generated. - `LastGeneratedOn Time` The date and time the tunnel was last modified. ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/magic_transit" "github.com/cloudflare/cloudflare-go/option" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) response, err := client.MagicTransit.IPSECTunnels.PSKGenerate( context.TODO(), "023e105f4ecef8ad9ca31a8372d0c353", magic_transit.IPSECTunnelPSKGenerateParams{ AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Body: map[string]interface{}{ }, }, ) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", response.IPSECTunnelID) } ``` #### 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" } } ], "result": { "ipsec_tunnel_id": "023e105f4ecef8ad9ca31a8372d0c353", "psk": "O3bwKSjnaoCxDoUxjcq4Rk8ZKkezQUiy", "psk_metadata": { "last_generated_on": "2017-06-14T05:20:00Z" } }, "success": true } ```