## Create a new Token Validation configuration `client.TokenValidation.Configuration.New(ctx, params) (*TokenConfig, error)` **post** `/zones/{zone_id}/token_validation/config` Create a new Token Validation configuration ### Parameters - `params ConfigurationNewParams` - `ZoneID param.Field[string]` Path param: Identifier. - `Credentials param.Field[ConfigurationNewParamsCredentials]` Body param - `Keys []ConfigurationNewParamsCredentialsKey` - `type ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSA struct{…}` JSON representation of an RSA key. - `Alg ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlg` Algorithm - `const ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlgRs256 ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlg = "RS256"` - `const ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlgRs384 ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlg = "RS384"` - `const ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlgRs512 ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlg = "RS512"` - `const ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlgPs256 ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlg = "PS256"` - `const ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlgPs384 ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlg = "PS384"` - `const ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlgPs512 ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlg = "PS512"` - `E string` RSA exponent - `Kid string` Key ID - `Kty ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSAKty` Key Type - `const ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSAKtyRSA ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyRSAKty = "RSA"` - `N string` RSA modulus - `type ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256 struct{…}` JSON representation of an ES256 key - `Alg ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256Alg` Algorithm - `const ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256AlgEs256 ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256Alg = "ES256"` - `Crv ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256Crv` Curve - `const ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256CrvP256 ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256Crv = "P-256"` - `Kid string` Key ID - `Kty ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256Kty` Key Type - `const ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256KtyEc ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256Kty = "EC"` - `X string` X EC coordinate - `Y string` Y EC coordinate - `type ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384 struct{…}` JSON representation of an ES384 key - `Alg ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384Alg` Algorithm - `const ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384AlgEs384 ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384Alg = "ES384"` - `Crv ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384Crv` Curve - `const ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384CrvP384 ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384Crv = "P-384"` - `Kid string` Key ID - `Kty ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384Kty` Key Type - `const ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384KtyEc ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384Kty = "EC"` - `X string` X EC coordinate - `Y string` Y EC coordinate - `Description param.Field[string]` Body param - `Title param.Field[string]` Body param - `TokenSources param.Field[[]string]` Body param - `TokenType param.Field[ConfigurationNewParamsTokenType]` Body param - `const ConfigurationNewParamsTokenTypeJWT ConfigurationNewParamsTokenType = "JWT"` ### Returns - `type TokenConfig struct{…}` - `ID string` UUID. - `CreatedAt Time` - `Credentials TokenConfigCredentials` - `Keys []TokenConfigCredentialsKey` - `type TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSA struct{…}` JSON representation of an RSA key. - `Alg TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlg` Algorithm - `const TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlgRs256 TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlg = "RS256"` - `const TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlgRs384 TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlg = "RS384"` - `const TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlgRs512 TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlg = "RS512"` - `const TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlgPs256 TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlg = "PS256"` - `const TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlgPs384 TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlg = "PS384"` - `const TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlgPs512 TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSAAlg = "PS512"` - `E string` RSA exponent - `Kid string` Key ID - `Kty TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSAKty` Key Type - `const TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSAKtyRSA TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyRSAKty = "RSA"` - `N string` RSA modulus - `type TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256 struct{…}` JSON representation of an ES256 key - `Alg TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256Alg` Algorithm - `const TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256AlgEs256 TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256Alg = "ES256"` - `Crv TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256Crv` Curve - `const TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256CrvP256 TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256Crv = "P-256"` - `Kid string` Key ID - `Kty TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256Kty` Key Type - `const TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256KtyEc TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256Kty = "EC"` - `X string` X EC coordinate - `Y string` Y EC coordinate - `type TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384 struct{…}` JSON representation of an ES384 key - `Alg TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384Alg` Algorithm - `const TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384AlgEs384 TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384Alg = "ES384"` - `Crv TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384Crv` Curve - `const TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384CrvP384 TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384Crv = "P-384"` - `Kid string` Key ID - `Kty TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384Kty` Key Type - `const TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384KtyEc TokenConfigCredentialsKeysAPIShieldCredentialsJWTKeyEcEs384Kty = "EC"` - `X string` X EC coordinate - `Y string` Y EC coordinate - `Description string` - `LastUpdated Time` - `Title string` - `TokenSources []string` - `TokenType TokenConfigTokenType` - `const TokenConfigTokenTypeJWT TokenConfigTokenType = "JWT"` ### Example ```go package main import ( "context" "fmt" "github.com/cloudflare/cloudflare-go" "github.com/cloudflare/cloudflare-go/option" "github.com/cloudflare/cloudflare-go/token_validation" ) func main() { client := cloudflare.NewClient( option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"), ) tokenConfig, err := client.TokenValidation.Configuration.New(context.TODO(), token_validation.ConfigurationNewParams{ ZoneID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"), Credentials: cloudflare.F(token_validation.ConfigurationNewParamsCredentials{ Keys: cloudflare.F([]token_validation.ConfigurationNewParamsCredentialsKeyUnion{token_validation.ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256{ Alg: cloudflare.F(token_validation.ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256AlgEs256), Crv: cloudflare.F(token_validation.ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256CrvP256), Kid: cloudflare.F("38013f13-c266-4eec-a72a-92ec92779f21"), Kty: cloudflare.F(token_validation.ConfigurationNewParamsCredentialsKeysAPIShieldCredentialsJWTKeyEcEs256KtyEc), X: cloudflare.F("KN53JRwN3wCjm2o39bvZUX2VdrsHzS8pxOAGjm8m7EQ"), Y: cloudflare.F("lnkkzIxaveggz-HFhcMWW15nxvOj0Z_uQsXbpK0GFcY"), }}), }), Description: cloudflare.F("Long description for Token Validation Configuration"), Title: cloudflare.F("Example Token Validation Configuration"), TokenSources: cloudflare.F([]string{`http.request.headers["x-auth"][0]`, `http.request.cookies["Authorization"][0]`}), TokenType: cloudflare.F(token_validation.ConfigurationNewParamsTokenTypeJWT), }) if err != nil { panic(err.Error()) } fmt.Printf("%+v\n", tokenConfig.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" } } ], "result": { "id": "f174e90a-fafe-4643-bbbc-4a0ed4fc8415", "created_at": "2014-01-01T05:20:00.12345Z", "credentials": { "keys": [ { "alg": "ES256", "crv": "P-256", "kid": "38013f13-c266-4eec-a72a-92ec92779f21", "kty": "EC", "x": "KN53JRwN3wCjm2o39bvZUX2VdrsHzS8pxOAGjm8m7EQ", "y": "lnkkzIxaveggz-HFhcMWW15nxvOj0Z_uQsXbpK0GFcY" } ] }, "description": "Long description for Token Validation Configuration", "last_updated": "2014-01-01T05:20:00.12345Z", "title": "Example Token Validation Configuration", "token_sources": [ "http.request.headers[\"x-auth\"][0]", "http.request.cookies[\"Authorization\"][0]" ], "token_type": "JWT" }, "success": true } ```